问号后接冒号在此RegEx上有什么作用?[duplicate]

fafcakar  于 2022-12-05  发布在  其他
关注(0)|答案(1)|浏览(130)

此问题在此处已有答案

What is a non-capturing group in regular expressions?(18个答案)
2天前关闭。
有人能给我解释一下正则表达式中问号后面跟冒号是什么意思吗?我在官方文档网站上找过了,找不到任何相关的东西。我知道?是用在一个标记后面来表示选项的,但我似乎找不到它的作用。
代码如下所示

*\B(?:(?:https?|文件)://| *

My list of url's is:
www.google.com
www.facebook.com
www.youtube.com
www.themeforest.net
www.enter.co
www.icefilms.info
www.wikipedia.org
www.rojadirecta.me
http://

如果我删除表达式的第一个?:和第二个?:,它的工作原理是相同的,选择所有的httphttps://www.匹配
我的表情就像这样

*\B((https?|文件)://| *

我不知道有什么区别,我读过一些关于分隔符的文章,但是我已经在使用/了,那么需要这些?:做什么呢

jm81lzqq

jm81lzqq1#

在正则表达式\B(?:(?:https?|文件)://|www.)中,问号后接冒号(?:)的组是非捕获组。这意味着不会捕获该组,可以将其作为一个整体进行访问。
在此正则表达式中,非捕获组(?:https?|ftp)用于匹配“http”或“https”或“ftp”。非捕获组(?:https?|文件)://|www.用于将完整URL与协议匹配(例如“http://www.example.com“),或仅将URL的“www.”部分匹配(例如“www.example.com”)。
当您要将多个模式组合在一起,但不想将匹配的文本捕获为单独的组时,非捕获组非常有用。这可以使正则表达式更简洁、更易于阅读。
有关非捕获组以及如何在正则表达式中使用它们的更多信息,可以参考所选正则表达式引擎的文档。

相关问题