[英]How do I write a regular expression that only matches if match three required capture groups
[英]Regular Expression - How do I capture before the first match?
服裝與時尚 · 美國 · 10001+ 員工 · 50 億收入
非營利組織 · 加拿大 · 501-1000 名員工
這是上面的幾個例子。 我試圖抓住這個行業(例如Apparel & Fashion
或Non-Profit Organization
)
我正在嘗試使用第一個 · 作為捕獲參考
這將捕獲最后一個點 (.+)\s·之前的所有內容
但我想在第一個點之前捕獲所有內容。 我該怎么做呢? 抱歉,這是一個基本問題。
捕獲所有不是·
的東西。 這允許您在需要時使用preg_match_all
來獲取由·
分隔的所有部分:
([^·]+)
您可以添加開始錨點以僅獲取第一個錨點,但可能不需要:
^([^·]+)
但是在 PHP 中:
$result = explode('·', $text)[0];
或者得到所有:
$results = explode('·', $text)[0];
echo $results[0];
echo $results[1];
//etc...
您應該使用非貪婪的正則表達式。 (.+?)·
完全不需要正則表達式,看這段代碼:
$position = strpos($string, "·", 5);
$string = substr ( $string , 0, $position - 2 );
其中$string
是要解析的字符串
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.