我有一个与此类似的字符串:
这是一个测试字符串 - 这是第二个测试字符串;这是第三个测试字符串
我的目标是仅匹配第一个字符串:
这是一个测试字符串
分隔符可以是除了单词之外的任何内容:( - ,;,_,?etc ....)
我怎样才能使用正则表达式?
谢谢。
答案 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