正则表达式(?=。*?[A-Z])中=的用途是什么,为什么?和*在[a-z]前面,是因为我在一本书中看到它们应该出现在它们应生效的单词或表达式后面,以及为什么这两个原因?
答案 0 :(得分:0)
整个正则表达式
(?=.*?[A-Z])
被称为超前断言,一种环顾四周。
它包含三个项目:
(?= )
.*?
[A-Z]
第一个是先行断言的语法。该模式将出现在括号?=
之后。
第二个是与任何字符匹配的点,带有重复修饰符*?
,其中的方言表示“零次或多次匹配”,问号表示“尽可能少匹配”,而不是贪婪
第三个我想你知道。
环视断言限制了模式的周围,而没有匹配(捕获)额外的东西。例如:
a(?=b)
将匹配ab
中的字母a,但不匹配ac
中的字母a。请注意,它仅与字母a
匹配,而字母b
只是对 where 应该匹配字母a
的限制。而a(b)
匹配ab
中的两个字母并捕获后者。