gpt4 book ai didi

java - 如何为某些场景制作正则表达式模式

转载 作者:行者123 更新时间:2023-12-02 12:28:02 25 4
gpt4 key购买 nike

我正在使用 JAVA 进行 WordXml 解析。

现在我想检查(F(1) = 44)这种类型的模式是否会出现在段落中。

注意:开盘价内部必须有整数值。

我需要检查以下模式。

(text text (text) text)
(F(1) = 44)
(text text [text] text)
[text text (text) text]

但是,显然不知道如何为上述情况创建正则表达式模式。

所以,请推荐我。任何人请告诉我。

最佳答案

你可以使用这个正则表达式\([a-zA-Z]+\(\d+\)\s*=\s*\d+\),这意味着

  • 一个或多个字母[a-zA-Z]+
  • 后跟一个或多个位于括号之间的数字 \(\d+\)
  • 后跟一个或多个空格\s*
  • 后跟等号 =
  • 后跟一个或多个空格 \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

regex demo

关于java - 如何为某些场景制作正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45409917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com