繁体   English   中英

正则表达式负前缀和后缀

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM