使用简单的正则表达式的奇怪结果
Strange result with a simple regular expression
我现在正在研究正则表达式,遇到了奇怪的行为:
以下正则表达式接受Q-123456-789
或q-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
。
如果要匹配r
或R
,只需将它们替换为字符类:^[rR]
。
尝试[r]
以获得完全匹配,而不是'r
以获得预期结果
试试这个:
^[rR]-'d{6}'-'d{3}$
使用 https://regex101.com/#javascript 进行测试
相关文章:
- javascript RegExp的奇怪行为:相同的正则表达式会产生不同的结果
- javascript使用正则表达式得到错误的结果
- 如何在javascript中匹配和提取正则表达式中的部分结果
- 正则表达式,两种方式,不同的结果
- 为什么两次运行完全相同的正则表达式的结果不同
- 将此javascript正则表达式匹配限制为26个字符的结果
- JavaScript 正则表达式返回拆分的结果
- 通过正则表达式检查合法字符,但结果出乎意料
- JS正则表达式结果表达式赋值问题
- 正则表达式 - 替换方法从字符串中删除运算符产生不希望的结果
- 使用简单的正则表达式的奇怪结果
- 在外部作用域中定义的正则表达式在 JavaScript 中会产生不同的结果
- 正则表达式第一个结果($ 1)替换为变量的属性
- JavaScript 中的正则表达式用于存储在数组中的负浮点数结果
- 正则表达式替换的意外结果
- 根据正则表达式和结果构造字符串(用于匹配的反向)
- 意外的非贪婪JS正则表达式结果
- 正则表达式[^A-J]和匹配结果
- 使用正则表达式分析字符串,并将结果存储在数组或字符串中
- 有没有任何方法可以得到正则表达式模式的所有可能结果