我在运行MacOs Mojave的Mac上使用Java,Eclipse。
看来这很容易,但是我花了4-5个小时。
需要识别以下字符串:b1, b2, b3, ... b14, b15
。
尝试过“ ^b1[012345]{1}$ | ^b[1-9]?$
和别的:
(^b1[012345]{1}$) | (^b[1-9]{1}$)
^b(1 | 2| 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | | 13 | 14 | 15){1}$
乃至
^b( '1' | '2' | '3' | '4' | '5' | '6' | '7'... | '15'){1}$
非常感谢。
答案 0 :(得分:2)
尝试此正则表达式:
\bb(?:1[0-5]|[1-9])\b
在JAVA中,您需要使用另一个\
转义\
说明:
\b
-匹配单词边界b
-匹配字母b
(?:1[0-5]|\d)
-匹配1后跟0-5
范围内的数字,或匹配1-9
中的一位数字\b
-匹配单词边界答案 1 :(得分:1)
谢谢。但这没有用;我摆弄着它,无法上班。以下是详细信息,但可以使用:
String first = pageText.substring(0, 1);
String rest = pageText.substring(1, pageText.length());
String pattern = "[^0-9]";
Matcher matcher = Pattern.compile(pattern).matcher(rest);
while (matcher.find()) {
JOptionPane.showMessageDialog(null,
"<html>Only b followed by a number between 1 and “
+ “15 in the page number field",
"Page Number Is Not Recognizable",
JOptionPane.ERROR_MESSAGE);
return;
}
int intRest = Integer.parseInt(rest); // string to integer
if ((intRest > 0 && intRest < 16) && (first.equals("b"))) {
// valid