簡體   English   中英

正則表達式 - 如何在第一次匹配之前捕獲?

[英]Regular Expression - How do I capture before the first match?

服裝與時尚 · 美國 · 10001+ 員工 · 50 億收入

非營利組織 · 加拿大 · 501-1000 名員工

這是上面的幾個例子。 我試圖抓住這個行業(例如Apparel & FashionNon-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM