【发布时间】:2017-09-09 15:09:29
【问题描述】:
我正在解决一个问题,我需要匹配目标字符串中给定单词的不同大小写不敏感的排列。
例如:
要匹配的单词:cAda
目标字符串:AbrAcadAbRa
在这里,可以在目标字符串 S 中找到 2 个可能的排列是 Acad 和 cadA。
我写过这样的:
String pattern = "" ;
for(char ch : word.toCharArray()){
pattern = pattern + "(?=[\\s\\S]*(" + ch + "))" ;
}
pattern = "^" + pattern + "*$";
Pattern r = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
它不起作用。
【问题讨论】:
-
正则表达式不适合这项任务。如果你想要所有排列,正则表达式应该包含所有排列,而不是一个单词。
-
你能告诉我如何通过一些代码,我还在学习正则表达式
-
@WiktorStribiżew:这是我最初的想法,但因为
aaaa也会匹配,所以这行不通:字符组包含[a...]{4},因此排列不需要考虑所有字符.
标签: java regex algorithm pattern-matching sliding-window