有谁知道正则表达式得到以下结果:
Hello world, Another day to die. => Hello world
我正在尝试以下表达式:
/^.*,/
但结果是'Hello world!'
我想忽略最后一个字符(!)。任何人都可以帮我一把吗?
最好的问候。
答案 0 :(得分:2)
使用积极的前瞻:
/^.*?(?=,)/
使用示例:
preg_match('/^.*?(?=,)/', "Hello world, Another day to die.", $matches);
echo "Found: {$matches[0]}\n";
输出:
Found: Hello world
答案 1 :(得分:0)
除了@ acdcjunior的答案之外,还有以下几种选择:
"/^.*?(?=,)/" // (full match)
"/^(.*?),/" // (get element 1 from result array)
"/^[^,]+/" // (full match, bonus points for matching full string if there is no comma)
explode(",",$input)[0] // PHP 5.4 or newer
array_shift(explode(",",$input)) // PHP 5.3 and older
substr($input,0,strpos($input,","))
有很多方法可以实现这一目标;)
答案 2 :(得分:0)
这是另一个,
$str = 'Hello world, Another day to die';
preg_match('/[^,]+/', $str, $match);
答案 3 :(得分:0)
使用以下内容:
/^[\w\s]+/
答案 4 :(得分:0)
使用此选项,仅检查字母:
/^[a-z]+ [a-z]+/i
或没有正则表达式:
$res = split(",", $string, 2)[0];