如何为某些场景制作正则表达式模式
How to make regex pattern for some scenarios
正在使用 JAVA 做 WordXml 解析器。
现在我想检查 (F(1) = 44)
这种类型的模式是否会出现在段落中。
注意:open close里面必须有整数值。
我需要检查以下模式。
(text text (text) text)
(F(1) = 44)
(text text [text] text)
[text text (text) text]
但是,显然不知道如何为上面的 senarios 制作正则表达式模式。
所以,请建议我。任何人都请告诉我。
您可以使用此正则表达式 \([a-zA-Z]+\(\d+\)\s*=\s*\d+\)
,这意味着
- 一个或多个字母
[a-zA-Z]+
- 后跟一个或多个括号之间的数字
\(\d+\)
- 后跟一个或多个 space
\s*
- 然后等于
=
- 然后是一个或多个 space
\s*
- 后跟一个或多个数字
\d+
- 括号内的所有内容
\([a-zA-Z]+\(\d+\)\s*=\s*\d+\)
像这样的模式:
String[] texts = new String[]{"(text text (text) text)",
"(F(1) = 44)",
"(text text [text] text)",
"[text text (text) text]"};
String regex = "\([a-zA-Z]*\(\d+\)\s*=\s*\d+\)";
for (String s : texts) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
System.out.println("There are match " + matcher.group());
} else {
System.out.println("No match occurred");
}
}
输出
No match occurred
There are match (F(1) = 44)
No match occurred
No match occurred
正在使用 JAVA 做 WordXml 解析器。
现在我想检查 (F(1) = 44)
这种类型的模式是否会出现在段落中。
注意:open close里面必须有整数值。
我需要检查以下模式。
(text text (text) text)
(F(1) = 44)
(text text [text] text)
[text text (text) text]
但是,显然不知道如何为上面的 senarios 制作正则表达式模式。
所以,请建议我。任何人都请告诉我。
您可以使用此正则表达式 \([a-zA-Z]+\(\d+\)\s*=\s*\d+\)
,这意味着
- 一个或多个字母
[a-zA-Z]+
- 后跟一个或多个括号之间的数字
\(\d+\)
- 后跟一个或多个 space
\s*
- 然后等于
=
- 然后是一个或多个 space
\s*
- 后跟一个或多个数字
\d+
- 括号内的所有内容
\([a-zA-Z]+\(\d+\)\s*=\s*\d+\)
像这样的模式:
String[] texts = new String[]{"(text text (text) text)",
"(F(1) = 44)",
"(text text [text] text)",
"[text text (text) text]"};
String regex = "\([a-zA-Z]*\(\d+\)\s*=\s*\d+\)";
for (String s : texts) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
System.out.println("There are match " + matcher.group());
} else {
System.out.println("No match occurred");
}
}
输出
No match occurred
There are match (F(1) = 44)
No match occurred
No match occurred