[英]How does this ? operator work in regex?
^.*(?=.*[0-9]).*$
我看到这张贴在某人的代码中。 这是一个有效的正则表达式吗? 我知道?
应该像abc?
一样使它之前的项目可选abc?
使c
可选。 但是?
是一个捕获支架的开始。 那是什么意思?
?
单独表示:选择匹配之前的内容。
但是, (? .. )
用于断言......
在你的情况下, (?=
是一个前瞻断言,意思是:如果只是匹配(括号中的内容),则跟随。
参考
(?:......)
非捕获括号。 对包含的模式进行分组,但不提供匹配文本的捕获。 比捕获括号更有效。
(?> ...)
原子匹配括号。 括号内的子表达式的第一个匹配是唯一尝试过的; 如果它没有导致整体模式匹配,则将搜索匹配到“(?>”之前的位置
(?#...)
自由格式评论(?#comment)。
(?= ...)
前瞻性断言。 如果带括号的模式在当前输入位置匹配,但不提前输入位置,则为真。
(?!...)
否定的前瞻性断言。 如果括号模式在当前输入位置不匹配,则为True。 不提前输入位置。
(?<= ...)
后瞻性断言。 如果带括号的模式与当前输入位置之前的文本匹配,则为真,其中匹配的最后一个字符是当前位置之前的输入字符。 不改变输入位置。 由后视图案匹配的可能字符串的长度不得无限制(无*或+运算符。)
(?<!......)
负面的后瞻性断言。 如果带括号的模式与当前输入位置之前的文本不匹配,则为真,其中匹配的最后一个字符是当前位置之前的输入字符。 不改变输入位置。 由后视图案匹配的可能字符串的长度不得无限制(无*或+运算符。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.