正则表达式删除包含非alpha数值的所有字符串

时间:2017-03-05 10:59:16

标签: php regex

再次:

 `string:  He will go b@rcelona today 
 $myvar:    [space here TOP Deletation]b'<== deletation begin'@'begin deletation==>rcelona[space here, TOP deletation]

输出:他今天会去。

房子的例子就是我要清理的文件,它非常脏,它的第一个代码工作得很好,但只有星号,不同于问题的请求。

在这里,我确实匹配了不是字母数字的所有内容:

^a-zA-Z0-9 

在这里,我确实匹配了不是字母数字的所有内容:^ a-zA-Z0-9我需要清理它之前的所有内容,直到下一个空白区域(空白区域)...我不知道如何做到这一点,我已经尝试了很多东西),直到我删除了字母数字字符后面的所有内容,但是直到下一个空白之前是什么?      请:* =所有非Alpha数字

[Stop in white space, leave it]888AAAA*AAAA888[white space]
Asterisk is representing any non-alpha character.(~^*&%$>>>)
I need find the * and clean it: * and everything that comes before or after and stop only while find first white space. 
    Exactly how it does: 
[^\s*]*\*([a-zA-Z0-9]*) But only works only with asterisks.

[^\s*]*\*([a-zA-Z0-9]*);

但是我在工作中遇到一个案例,我需要在几个变量中做一个大清洁工,但是找“/ [^ a-zA-Z0-9 \ s] /”和我所拥有的一切贴在上面

 I need this output with:
That is a big house mmmm&MmmMM pppp%MMMM hhhh!HHHH UUUU?000^uuuu~yyyy and very well localized 

 What else is non alpha numeric? "/[^a-zA-Z0-9\s]/"  or \W

每当我发现一个字符不是字母数字时,向前和向后删除所有内容,停在空格处:

[^\s*]*\*([a-zA-Z0-9]*)

再次感谢。

1 个答案:

答案 0 :(得分:1)

怎么样:

$input = 'That is a big house 1 mmmm&MmmMM 2 pppp%MMMM 3 hhhh!HHHH 4 UUUU?000^uuuu~yyyy';
$result = preg_replace('/(\d+\s)\S+/i', '$1', $input);
echo $result,"\n";

<强>输出:

That is a big house 1  2  3  4 

<强>解释

/       : regex delimiter
  (     : start group 1
    \d+ : 1 or more digit
    \s  : a space
  )     : end group
  \S+   : 1 or more NON space character
/i      : regex delimiter, case insensitive