正则表达式替换整个单词,如果任何单词包含任何非字母数字字符或空格

时间:2010-05-31 00:31:47

标签: php regex word preg-replace alphanumeric

e.g

string =“这是一段长长的长句!”

变为

string =“这是一个长句”;

基本上所有非字母数字的单词或删除的空格都被加上

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

preg_replace("/(^|\\s)\\S*?[^ a-zA-Z0-9]\\S*?(\\s|$)/", '$1', $string)

答案 1 :(得分:1)

我认为这样的事情非常直观:

<?php

$text = "This is a #@^!%$ re@lly long long,long! sentence";
print preg_replace("/\\w*[^\\w\\s]\\w*\\s*/", "", $text);

?>

输出为(as seen on ideone.com):

This is a long sentence

这可以通过匹配\w*后跟[^\w\s]的任何序列(既不是单词字符也不是空格),后跟任何\w*\s*序列。可以删除与此匹配的任何内容,因此将其替换为""

另见