正则表达式/ 2个相同的字母/ PHP

时间:2016-05-11 21:04:54

标签: php preg-match

嘿我正在寻找解决PHP问题的方法。 如何创建正则表达式,它将检查我从范围[a-c]得到两个相同的字母。无论按什么顺序。 只是检查是否有2。

例如我使用它但它不能按我的意愿工作。

/a{2}b{2}c{2}/

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

检查live here

答案 1 :(得分:2)

使用back-reference,使其必须匹配相同的字符两次。

/([abc])\1/

Regex101 Example

或者,对于多个反向引用:

/(a)\1(b)\2(c)\3/

/(([abc])\1)*/

(如果你只是需要字面上匹配" aabbcc"那么你的正则表达式应 /aabbcc/