![](/img/trans.png)
[英]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.