簡體   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