正则表达式 - 如何匹配单词链直到非“单词”字符

时间:2013-11-21 13:36:54

标签: php regex

我有一个与此类似的字符串:

  

这是一个测试字符串 - 这是第二个测试字符串;这是第三个测试字符串

我的目标是仅匹配第一个字符串:

  

这是一个测试字符串

分隔符可以是除了单词之外的任何内容:( - ,;,_,?etc ....)

我怎样才能使用正则表达式?

谢谢。

4 个答案:

答案 0 :(得分:2)

/([a-z\d\s]+)/i

匹配字母(a-z),数字(\d)或空格(\s)中的一个或多个。
修饰符i使其与大小写不匹配。

请注意,在这种情况下,您无法使用\w来匹配字母,因为它也与OP问题中明确禁止的下划线相匹配。

答案 1 :(得分:1)

使用preg_replace

$string = 'This is a test string - This is a second test string ; This is a third test string';
$match = preg_replace('/[^\sa-z].*/i', '', $string);
echo $match; // => This is a test string

答案 2 :(得分:0)

考虑以下Regex ......

^[\w\s]*

祝你好运!

答案 3 :(得分:0)

检查此正则表达式,将在所有情况下找到带空格的字符

/[A-Za-z\s]+/is