Pattern p1 = Pattern.compile(".................");
Pattern p2 = Pattern.compile("xxxxxxxxxxxxxxxxxxx");
由于p1和p2都很长,并且很难编写单个模式来覆盖p1和p2中的所有情况。是否可以编写另一个基于p1和p2构建的模式p3,这样我只能运行一个匹配器:
Matcher m = p3.matcher(str);
答案 0 :(得分:3)
您可以使用它来组合模式:
Pattern pattern = Pattern.compile(".................|xxxxxxxxxxxxxxxxxxx");
匹配任何一个:
Matcher matcher = pattern.matcher(s);
答案 1 :(得分:1)
当然,您只需将模式字符串与|
结合使用即可。如果您的字符串代表模式string1
和string2
,那么字符串string1|string2
将匹配 模式。在您的示例中,您可以使用字符串".................|xxxxxxxxxxxxxxxxx"
。
当然,如果您使用捕获组或重复匹配模式与子串的匹配,事情会变得更加复杂,因为那时不清楚“组合”模式的确切含义,但是对于简单匹配/无数学这种情况有效。