我想在我的word文件中对以下文本进行模式匹配,我不知道如何使用模式匹配器
(P // TRIF)
(P)
(U//TRIF)
(U)
import java.util.ArrayList;
import java.util.List;
import java.util.regex;
public class ExtractDemo {
public static void main(String[] args) {
String input = "I have a ( U) but I (P) like my (P//TRIF) better (U//TRIF).";
Pattern p = Pattern.compile("(P|U|P//TRIF|U//TRIF)");
Matcher m = p.matcher(input);
List<String> animals = new ArrayList<String>();
while (m.find()) {
System.out.println("Found a " + m.group() + ".");
animals.add(m.group());
}
}
}
答案 0 :(得分:0)
您的正则表达式匹配U
,P
,P
,U
如果您想匹配(P // TRIF)
或(P)
或(U//TRIF)
或(U)
,您可以将更改中的顺序更改为
(P//TRIF|U//TRIF|P|U)
如果要捕获包含组中周围括号的文本,可以尝试:
(\(\s*(?:P|U|P//TRIF|U//TRIF)\))
public static void main(String args[])
{
String input = "I have a ( U) but I (P) like my (P//TRIF) better (U//TRIF).";
Pattern p = Pattern.compile("(\\(\\s*(?:P|U|P//TRIF|U//TRIF)\\))");
Matcher m = p.matcher(input);
List<String> animals = new ArrayList<String>();
while (m.find()) {
System.out.println("Found a " + m.group() + ".");
animals.add(m.group());
}
}
另一种匹配方式可能是