使用简单的正则表达式的奇怪结果

Strange result with a simple regular expression

本文关键字:结果 正则表达式 简单      更新时间:2023-09-26

我现在正在研究正则表达式,遇到了奇怪的行为:

以下正则表达式接受Q-123456-789q-123456-789

params: '^''q''-''d{6}''-''d{3}$|^''Q''-''d{6}''-''d{3}$'

以下正则表达式接受R-123456-789但不接受r-123456-789

params: '^''r''-''d{6}''-''d{3}$|^''R''-''d{6}''-''d{3}$'

(我只是用r替换了q,用R替换了Q(

因为:

'r匹配回车

'q仅匹配文字q

顺便说一句,您的正则表达式使用了过多的转义,它应该没有''

"^[qQ]-''d{6}-''d{3}$"

"^[rR]-''d{6}-''d{3}$"

'r匹配回车符(0x0D - 不可打印的字符(,而不是r字符q 'q

如果要匹配rR,只需将它们替换为字符类:^[rR]

尝试[r]以获得完全匹配,而不是'r以获得预期结果

试试这个:

^[rR]-'d{6}'-'d{3}$

使用 https://regex101.com/#javascript 进行测试