此问题在此处已有答案:
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://
如果我删除表达式的第一个?:
和第二个?:
,它的工作原理是相同的,选择所有的http
、https://
和www.
匹配
我的表情就像这样
*\B((https?|文件)://| *
我不知道有什么区别,我读过一些关于分隔符的文章,但是我已经在使用/
了,那么需要这些?:
做什么呢
1条答案
按热度按时间jm81lzqq1#
在正则表达式\B(?:(?:https?|文件)://|www.)中,问号后接冒号(?:)的组是非捕获组。这意味着不会捕获该组,可以将其作为一个整体进行访问。
在此正则表达式中,非捕获组(?:https?|ftp)用于匹配“http”或“https”或“ftp”。非捕获组(?:https?|文件)://|www.用于将完整URL与协议匹配(例如“http://www.example.com“),或仅将URL的“www.”部分匹配(例如“www.example.com”)。
当您要将多个模式组合在一起,但不想将匹配的文本捕获为单独的组时,非捕获组非常有用。这可以使正则表达式更简洁、更易于阅读。
有关非捕获组以及如何在正则表达式中使用它们的更多信息,可以参考所选正则表达式引擎的文档。