匹配正则表达式中除空格之外的所有字符

时间:2015-10-19 23:53:21

标签: php regex preg-match

现在我有一个正则表达式,我想改变正则表达式的一部分。

(.{3,}?) ~

^ ---代码的这一部分,它所说的,(任何长度为3或更多的字符,并匹配最近的空格),我想将其更改为(任何字符,除了空格,长度为3或更多,并匹配最近的空格)。我怎么说在正则表达式?

$text = "my name is to habert";
$regex = "~(?:my name is |my name\\\'s |i am |i\\\'m |it is |it\\\'s |call me )?(.{3,}?) ~i";
preg_match($regex, $text, $match);
print_r($match);

结果:

Array ( [0] => my name [1] => my name )

需要结果:

Array ( [0] => name [1] => name )

1 个答案:

答案 0 :(得分:1)

这里有掘墓人......由于这个问题还没有答案,我会发布我的。

(\S{3,})将满足您的需求

正则表达式说明:

(打开捕获组

\S除了空格之外的所有内容(与[^\s]相同),您也可以使用[^ ],但后者仅适用于空格。)

{3,}必须包含三个或更多字符

)关闭捕获组

Test it here!