我正在尝试用这种模式替换,所以我需要匹配这个:
String pattern = "[\\\\A\\\\W]its[\\\\W\\\\z]";
我正在解释我的模式的方式是:字符串的开头或非字字符,如空格或逗号,然后是“它”,然后是非单词字符或字符串的结尾。
为什么它在这个字符串中的“它”上不匹配?
its about time
这应该做什么的想法应该检测错误的文字,如“它”,并将它们固定为“它”。
为什么我需要这么多的转义字符才能让vm接受这个模式呢?
答案 0 :(得分:1)
\\A
和\\z
是边界匹配。他们不能进入角色类。如果正确使用它们,即使用两个斜杠而不是四个,正则表达式模式编译器会抛出异常,因为\A
或\z
不能进入[]
块。
对非捕获组使用直接|
语法:
String pattern = "(?:\\A|\\W)its(?:\\W|\\z)";