Regex 如何理解正则表达式模式?
我需要理解这样一种模式:Regex 如何理解正则表达式模式?,regex,Regex,我需要理解这样一种模式:^9(ab | cd | ef?$ 我有一些字符串传递和不传递此模式的示例: 9 - NO 9cd - YES 9e - YES 9acef - NO 我不知道为什么第三个例子被接受而第四个不被接受。 我看到这样的模式:9然后a然后(b或c)然后(d或e)然后f(零次或一次)。但我认为我的理解是错误的。有人能告诉我怎么看吗 我看到这样的模式:9,然后a,然后(b或c),然后(d或e),然后f(0或1次) 错。它实际上就像9然后ab或cd或ef或e和线边界
^9(ab | cd | ef?$
我有一些字符串传递和不传递此模式的示例:
9 - NO
9cd - YES
9e - YES
9acef - NO
我不知道为什么第三个例子被接受而第四个不被接受。
我看到这样的模式:9
然后a
然后(b或c
)然后(d或e
)然后f
(零次或一次)。但我认为我的理解是错误的。有人能告诉我怎么看吗
我看到这样的模式:9,然后a,然后(b或c),然后(d或e),然后f(0或1次)
错。它实际上就像9然后ab
或cd
或ef
或e
和线边界的末端。所以这个正则表达式将匹配9e
,但不匹配9acef
。9之后允许的最大和最小字符为2(ab、cd、ef)或1(e)
,即不超过2?
此处会将上一个标记变为可选,ef?
匹配ef
或e
我看到这样的模式:9,然后a,然后(b或c),然后(d或e),然后f(0或1次)
错。它实际上就像9然后ab
或cd
或ef
或e
和线边界的末端。所以这个正则表达式将匹配9e
,但不匹配9acef
。9之后允许的最大和最小字符为2(ab、cd、ef)或1(e)
,即不超过2?
此处将上一个标记变为可选,ef?
匹配管道的ef
或e
表示或<代码>(ab | cd | ef?表示ab或cd或e后跟f。必须存在一个备选方案,但不能存在多个备选方案
^和$是指示输入的开始和结束位置的锚。$anchor表示输入的结尾必须紧跟与(ab | cd | ef?
匹配的内容
- 9:没有其他选择,这不匹配
- 9cd:存在cd替代品,因此此项匹配
- 9e:存在更多fs备选方案的e和0,这匹配
- 9acef:存在两个备选方案,输入的结束时间在ef之后;由于正则表达式指定输入的结尾必须恰好位于一个备选项之后,并且出现两个备选项,因此这不匹配
- 管道意味着或<代码>(ab | cd | ef?表示ab或cd或e后跟f。必须存在一个备选方案,但不能存在多个备选方案
^和$是指示输入的开始和结束位置的锚。$anchor表示输入的结尾必须紧跟与
(ab | cd | ef?
匹配的内容
- 9:没有其他选择,这不匹配
- 9cd:存在cd替代品,因此此项匹配
- 9e:存在更多fs备选方案的e和0,这匹配
- 9acef:存在两个备选方案,输入的结束时间在ef之后;由于正则表达式指定输入的结尾必须恰好位于一个备选项之后,并且出现两个备选项,因此这不匹配
^9(ab | cd | ef?$
翻译为:
9
,后跟ab
或cd
或ef
或e
符合您期望的模式是:
9a(b | c)(d | e)f?$
^9(ab | cd | ef?$
翻译为:
9
,后跟ab
或cd
或ef
或e
符合您期望的模式是:
9a(b | c)(d | e)f?$
9(ab | cd | ef?
表示:9后接ab或cd或ef或e(因为f是可选的,由引起?
)
^
和$
分别标记字符串的开头和结尾
提示:许多正则表达式测试人员(例如)提供鼠标上方键入正则表达式的解释。9(ab|cd|ef?
表示:9后接ab或cd或ef或e(因为f是可选的,由引起?
)
^
和$
分别标记字符串的开头和结尾
提示:许多正则表达式测试人员(例如)提供鼠标上方键入正则表达式的解释。您将
与或(
)混淆,然后将与或(
)。您描述的将是9a(b | c)(d | e)f
这样的网站对这类事情很有帮助,因为它可以分解你的正则表达式并显示哪些部分匹配/不匹配是的,就是这样,谢谢你这里有一个指向正则表达式的链接,你把和或(|
)混淆了(串联)。你描述的是9a(b | c)(d | e)f
像这样的网站对这类事情很有帮助,因为它可以分解你的正则表达式,并显示哪些部分匹配/不匹配是的,就是这样,谢谢这里有一个指向正则表达式的链接,在regex101上好的,所以一个替代符号包括符号块。谢谢好的,所以替代符号包括符号块。谢谢