如何将给定的模式检查到输入对话框中?
How can I check the given pattern into an input dialog?
我有一个输入对话框,我想检查用户是否输入了特定的模式。例如,用户可以键入任意数字 -
和任意数字。像这样 10-20
。如何检查用户是否输入了这种模式?
要检查输入是否正确,请执行以下操作:
在Java中:
Pattern pattern = Pattern.compile("^[0-9]+-[0-9]+",Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("10-20");
boolean matchFound = matcher.find();
if(matchFound) {
System.out.println("Match found");
} else {
System.out.println("Match not found");
}
假设数字保证为正整数,@Eritrean 的建议是正确的。
String input = "10-20";
String regex = "\d+-\d+";
System.out.println("Input is valid? " + input.matches(regex));
对于当前输入,它会打印出输入有效(“真”),因为它匹配给定的正则表达式。像 10-A0
这样的输入是无效的,因此会打印出“false”。
如果输入不能保证是正整数,我的建议是:
- 对于有符号值,在每个数字模式前添加
[-+]?
:[-+]?\d+-\d+[-+]?
。这将通过在数字前面允许可选的符号字符来匹配有符号整数。
- 对于 floating-point 个数字,我建议
\d*\.?\d+
。此正则表达式期望数值在小数点前有可选数字,在小数点后有无限数量的数字。它还匹配整数值。因此,像 \d*\.?\d+-\d*\.?\d+
这样的正则表达式应该能够计算由破折号分隔的整数和 floating-point 数字。如果您需要带符号的浮点数,请遵循上面 #1 中的建议。
我有一个输入对话框,我想检查用户是否输入了特定的模式。例如,用户可以键入任意数字 -
和任意数字。像这样 10-20
。如何检查用户是否输入了这种模式?
要检查输入是否正确,请执行以下操作:
在Java中:
Pattern pattern = Pattern.compile("^[0-9]+-[0-9]+",Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("10-20");
boolean matchFound = matcher.find();
if(matchFound) {
System.out.println("Match found");
} else {
System.out.println("Match not found");
}
假设数字保证为正整数,@Eritrean 的建议是正确的。
String input = "10-20";
String regex = "\d+-\d+";
System.out.println("Input is valid? " + input.matches(regex));
对于当前输入,它会打印出输入有效(“真”),因为它匹配给定的正则表达式。像 10-A0
这样的输入是无效的,因此会打印出“false”。
如果输入不能保证是正整数,我的建议是:
- 对于有符号值,在每个数字模式前添加
[-+]?
:[-+]?\d+-\d+[-+]?
。这将通过在数字前面允许可选的符号字符来匹配有符号整数。 - 对于 floating-point 个数字,我建议
\d*\.?\d+
。此正则表达式期望数值在小数点前有可选数字,在小数点后有无限数量的数字。它还匹配整数值。因此,像\d*\.?\d+-\d*\.?\d+
这样的正则表达式应该能够计算由破折号分隔的整数和 floating-point 数字。如果您需要带符号的浮点数,请遵循上面 #1 中的建议。