PHP 正则表达式:在字符串中查找给定模式的第一次出现


PHP regex: find the first occurrence of a given pattern in a string

我的字符串可以是

new-york-10036

chicago-55036

期望的结果是

new-york
chicago

我基本上想删除第一个破折号之后的所有字符串 - 后跟一个数字

看起来很容易,但我不知道怎么做

您可以使用 Negative Lookahead,如下所示:

(.+)(?='-'d)

正则表达式写道:"给我所有没有后面跟一个破折号和后面正好一个数字的东西"。

给定输入new-york-10036正则表达式将仅捕获new-york .在 PHP 中,您可以使用以下内容获取匹配的字符串:

$string = 'new-york-10036';
$regex = '/(.+)(?='-'d)/';
preg_match($regex, $string, $return);
echo $return[0] . "'n";

它输出new-york .

在此处查看正则表达式。