PHP正则表达式:在字符串中查找给定模式的第一个匹配项

时间:2016-03-04 00:22:41

标签: php regex

我的字符串可以是

new-york-10036

chicago-55036

期望的结果是

new-york
chicago

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

似乎很容易,但我不知道如何

1 个答案:

答案 0 :(得分:3)

您可以使用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

请参阅正则表达式here