"?:"在正则表达式中什么意思?

"?:"在正则表达式中什么意思


慕慕森
浏览 575回答 2
2回答

森林海

“?:”非获取匹配,匹配冒号后的内容但不获取匹配结果,不进行存储供以后使用。单独的“?”:匹配前面的子表达式零次或一次。当“?”紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少地匹配所搜索的字符串,而默认的贪婪模式则尽可能多地匹配所搜索的字符串。扩展资料正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。

慕斯709654

?: 是 不想被捕获的时候使用 可以提高程序执行速度比如 ([a-z][0-9])+这个正则表达式里 ( ) 里面的内容被捕获了, 反向引用的时候可以用上 。一般正则替换的时候用的多 像UBB代码但是 如果写成 (?:[a-z][0-9])+跟上面 正则表达式 整体匹配是一样的 就是 不会捕获 ( )里内容了。也就是不能使用 反向引用如果还是不太理解, 那就先了解一下 反向引用吧。
打开App,查看更多内容
随时随地看视频慕课网APP