简体   繁体   中英

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

my string can be

new-york-10036

or

chicago-55036

the desired result is

new-york
chicago

and i basically want to remove all the string that come after the first dash - followed by a number

seems easy but i don't know how

You can use Negative Lookahead, like so:

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

The regex reads: "get me everything that is not followed by exactly one dash and exactly one number after that".

Given the input new-york-10036 the regex is going to capture only new-york . In PHP you can get the matched string with:

$string = 'new-york-10036';

$regex = '/(.+)(?=\-\d)/';

preg_match($regex, $string, $return);

echo $return[0] . "\n";

It outputs new-york .

See the regex working here .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM