[英]Regex negative prefix and suffix
我有这些字符串例如:
download-google-chrome-free
download-mozilla-firefox-free
还有这些字符串:
google-chrome
mozilla-firefox
我的前缀是download-
我的后缀是-free
,我需要一个正则表达式来捕获的话google-chrome
,如果输入的字符串没有download-
和-free
的前缀和后缀,拍摄的组是字符串本身。
字符串1 = download-google-chrome-free(带前缀和sufix)
String 1 Group 1 = download-
String 1 Group 2 = google-chrome
String 1 Group 3 = -free
字符串2 =谷歌浏览器(无前缀和sufix)
String 2 Group 1 = '' (empty)
String 2 Group 2 = google-chrome (empty)
String 2 Group 3 = '' (empty)
你能做到吗? 我正在使用preg_match
使用PHP
。
preg_match('/(download-)?(google-chrome|mozilla-firefox)(-free)?/', $string, $match);
?
表示之前的组是可选的。 如果字符串中没有前缀或后缀,则这些捕获组在$match
将为空。
如果您实际上不想返回带有可选前缀和后缀的组,请在组的开头放置?:
使其成为非捕获组。
preg_match('/(?:download-)?(google-chrome|mozilla-firefox)(?:-free)?/', $string, $match);
现在$match[1]
将包含您想要的浏览器名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.