正则表达式匹配两个字符

时间:2018-10-16 07:25:54

标签: javascript regex

我有一个正则表达式 echo $first_day_of_last_month =date("$first_day_of_month",strtotime('first day of last month')).'<br/>'; echo $last_day_of_last_month =date("$last_day_of_month",strtotime('last day of last month'));

它应该与“ QQ”或“ qq”匹配。没什么。

它没有用。它只匹配“ Q”或“ q”,而不匹配两个字符。

所以我更改了它以增加字符长度。 2018-10-01 2018-10-16 2018-10-01 2018-10-16 。 现在,它匹配三个字符。字符长度像n + 1一样工作吗?

它也接受比赛之前或之后的任何事情。例如“ abcQQQdef”或“ 123qqq456”。

如何将其限制为仅“ QQ”或“ qq”?

1 个答案:

答案 0 :(得分:4)

[]中的

字符位于字符集中,重复的字符将被忽略。 /^[QQ|qq]$//^[Q|q]$/相同,表示“匹配单个字符:Qq|

改为使用组:

/^(?:QQ|qq)$/

或者,如果您想使用{}重复,请使用:

/^(?:Q{2}|q{2})$/

您的/^QQ{2}|qq{2}$/表示“匹配:

  • 字符串的开头,后跟一个Q,然后(Q重复两次)= 3个Qs

  • q,后跟(q重复两次)= 3 qs,后跟字符串的结尾。

请注意,如果您没有将替代项包含在组中,则字符串开头和字符串结尾锚点将无法按预期工作。 (您可以使用类似/^QQ$|^qq$/的名称,但最好使用一组)