嘿我正在寻找解决PHP问题的方法。 如何创建正则表达式,它将检查我从范围[a-c]得到两个相同的字母。无论按什么顺序。 只是检查是否有2。
例如我使用它但它不能按我的意愿工作。
/a{2}b{2}c{2}/
答案 0 :(得分:2)
正如您上次发表的评论所述,我认为您正在寻找:
^(?:([abc])\1)*$
解释
^ # from start
(?: # group without saving
([abc]) # group saving in $1 one of: 'a', 'b', or 'c'
\1 # the same character saved in $1
)* # repeat it as many as possible
$ # till the end
答案 1 :(得分:2)
使用back-reference,使其必须匹配相同的字符两次。
/([abc])\1/
或者,对于多个反向引用:
/(a)\1(b)\2(c)\3/
或
/(([abc])\1)*/
(如果你只是需要字面上匹配" aabbcc"那么你的正则表达式应 /aabbcc/
)