我有一个正则表达式
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”?
答案 0 :(得分:4)
[]
中的字符位于字符集中,重复的字符将被忽略。 /^[QQ|qq]$/
与/^[Q|q]$/
相同,表示“匹配单个字符:Q
或q
或|
。
改为使用组:
/^(?:QQ|qq)$/
或者,如果您想使用{}
重复,请使用:
/^(?:Q{2}|q{2})$/
您的/^QQ{2}|qq{2}$/
表示“匹配:
或
请注意,如果您没有将替代项包含在组中,则字符串开头和字符串结尾锚点将无法按预期工作。 (您可以使用类似/^QQ$|^qq$/
的名称,但最好使用一组)