【发布时间】:2013-12-06 00:17:21
【问题描述】:
我有一个类似的字符串:
这是一个测试字符串 - 这是第二个测试字符串;这是第三个测试字符串
我的目标是只匹配第一个字符链:
这是一个测试字符串
分隔符可以是除单词以外的任何内容:(-, ;, _, ? etc....)
如何使用正则表达式做到这一点?
谢谢。
【问题讨论】:
我有一个类似的字符串:
这是一个测试字符串 - 这是第二个测试字符串;这是第三个测试字符串
我的目标是只匹配第一个字符链:
这是一个测试字符串
分隔符可以是除单词以外的任何内容:(-, ;, _, ? etc....)
如何使用正则表达式做到这一点?
谢谢。
【问题讨论】:
/([a-z\d\s]+)/i
这匹配字母 (a-z)、数字 (\d) 或空格 (\s) 中的一个或多个。
修饰符i 使其不区分大小写。
请注意,在这种情况下,您不能使用 \w 匹配字母,因为它也匹配 OP 问题中明确禁止的下划线。
【讨论】:
\d。
使用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
【讨论】:
考虑以下正则表达式...
^[\w\s]*
祝你好运!
【讨论】:
\w不仅匹配字母和数字,还匹配_。
\w 匹配任何“单词”字符。 ....“单词”字符是任何字母或数字或下划线字符,即可以成为 Perl“单词”一部分的任何字符。
检查这个正则表达式,将找到所有带有空格的字符
/[A-Za-z\s]+/is
【讨论】: