我是PHP的新手,我注意到处理正则表达式的方法有很多种.
这就是我目前使用的:
$replace = array(" ",".",",","'","@");
$newString = str_replace($replace,"_",$join);
$join = "the original string i'm parsing through";
Run Code Online (Sandbox Code Playgroud)
我想删除不是az,AZ或0-9的所有内容.我正在寻找上述的反向功能.写一个伪代码的方式就是
如果$ join中的字符不等于az,则AZ,0-9然后将字符更改
$join为"_"
run*_*alk 38
$newString = preg_replace('/[^a-z0-9]/i', '_', $join);
Run Code Online (Sandbox Code Playgroud)
这应该可以解决问题.
Gav*_*ler 10
任何非az,AZ,0-9的正则表达式是:
preg_replace('/[^a-zA-Z0-9]/', "_", $join);
Run Code Online (Sandbox Code Playgroud)
这被称为否定字符类
最简单的方法是:
preg_replace('/\W/', '_', $join);
Run Code Online (Sandbox Code Playgroud)
\ W是非单词字符组.单词字符是az,AZ,0-9和_.\ W匹配以前未提及的所有内容*.
编辑:preg使用Perl的正则表达式,记录在perlman perlre文档中.
*编辑2:这假定为C或其中一个英语语言环境.其他语言环境可能在单词字符类中具有重音字母.Unicode语言环境仅将代码点128下面的字符视为字符.