PHP - 使用Regex从String中提取名称

时间:2017-01-18 12:36:49

标签: php regex

我在循环中有一些字符串,如下例所示。

1)由Olympia Industries Ltd.出售(4.7 / 5 | 33,445个评分)并由亚马逊完成。提供礼物包裹服务。

2)健康第一次交易(4.3次,共5次| 47个评分),亚马逊实现。提供礼物包裹服务。

3)由hamsaveni出售并履行(4.1 / 5 | 101个评分)。

4)由Coffee Shopee出售并实现(3.4 / 5 | 7个评分)。

我想要的是提取卖家的名字,即

1)奥林匹亚工业有限公司 2)健康第一次交易 3)hamsaveni 4)Coffee Shopee

我知道我们可以通过匹配第一个支撑“(”和一些if else条件来实现。但不幸的是我无法做到。

任何帮助都会非常感激。

3 个答案:

答案 0 :(得分:1)

怎么样:

preg_match('/by([^(]+)/', $string, $matches);

答案 1 :(得分:0)

我认为卖家名称是在“by”之后开始并在(。然后

之前结束

它适合你。

SUBSTR($字符串,strpos($字符串, '由')+ 2,strpos($字符串, '(') - strpos($字符串, '由') - 2);

答案 2 :(得分:0)

我希望人们不要介意我使用.NET正则表达式语法(它非常相似),但这是我想出的:

(?:by)([A-Za-z ]+)(?:\([0-9]+(\.[0-9]+)?)

基本上,这个名字是一个捕获的组,由一些字母和空格的组合组成,这些组合出现在""之后。 (这是一个non-capturing group,因为你真正关心的只是名字)和评级(也是一个非捕获组)。