Regex 我可以减少这个Perl正则表达式';s原子&x27;什么是重复?
如果可能的话,我想在我的正则表达式中去掉重复的Regex 我可以减少这个Perl正则表达式';s原子&x27;什么是重复?,regex,Regex,如果可能的话,我想在我的正则表达式中去掉重复的[rat]。可以将其替换为类似\c之类的内容。您正在匹配字符类中的唯一字符。简单地说,输入字符串不应包含第二次出现的已定义字符。只需检查是否发生了相反的情况: ^([rat])(?!\g1)([rat])(?!(\g2|\g1))[rat]$ 或者一次完成,验证字符串是否也遵循^[rat]{3}$规则: ([rat]).*\1 细分: ^断言输入字符串的开头 (?!构建一个负前瞻 *?().*\1查找重复字符 )负前瞻结束 [rat]{3
[rat]
。可以将其替换为类似\c
之类的内容。您正在匹配字符类中的唯一字符。简单地说,输入字符串不应包含第二次出现的已定义字符。只需检查是否发生了相反的情况:
^([rat])(?!\g1)([rat])(?!(\g2|\g1))[rat]$
或者一次完成,验证字符串是否也遵循^[rat]{3}$
规则:
([rat]).*\1
细分:
断言输入字符串的开头^
构建一个负前瞻(?!
查找重复字符*?().*\1
负前瞻结束)
匹配包含已定义字符的3字符长字符串[rat]{3}
输入字符串的结尾$
r
、a
、t
字符组成的字符串。请您澄清(?!…)
中发生的情况。如果字符串中有重复字符,则匹配失败。它是否如你所期望的那样工作?它如你所期望的那样工作,但你能在回答中详细说明它吗?因为我不熟悉断言。请参见下面的答案。最后还是一样的模式。
^(?!.*?(.).*\1)[rat]{3}$