正则表达式-如何在第一个比赛之前进行捕捉?

时间:2019-10-30 18:01:40

标签: php regex

服装与时尚·美国·10001多名员工·50亿收入

非营利组织·加拿大·501-1000名员工

这是上面的几个例子。我正在尝试占领这个行业(例如Apparel & FashionNon-Profit Organization

我正在尝试使用第一个·作为捕获参考

这将捕获最后一个点(。+)\ s·

之前的所有内容

但是我想捕获第一个点之前的所有内容。我该怎么做呢?抱歉,这是一个基本问题。

3 个答案:

答案 0 :(得分:1)

捕获所有非·的内容。这使您可以在需要时使用preg_match_all来获取由·分隔的所有部分:

([^·]+)

您可以添加开始锚仅获取第一个,但可能不需要:

^([^·]+)

但是在PHP中只是:

$result = explode('·', $text)[0];

或者全部获取:

$results = explode('·', $text)[0];
echo $results[0];
echo $results[1];
//etc...

答案 1 :(得分:1)

您应该使用非贪婪的正则表达式。 (。+?)·

答案 2 :(得分:1)

完全不需要正则表达式,请参见以下代码:

$position = strpos($string, "·", 5);  
$string = substr ( $string , 0, $position - 2 );

$string是要解析的字符串