发布日期:2018-03-26
在正则表达式中匹配一个空格+ 查看更多
在正则表达式中匹配一个空格
+ 查看更多
发布日期:2018-03-26 14:31
分类:PHP
浏览次数:2696
我需要匹配PHP正则表达式中的空格字符。你们有什么想法吗?
我的意思是“gavin schulz”,两个词之间的空间。我使用正则表达式,以确保我只允许字母,数字和一个空格。但我不知道如何找到这个空间。这是我现在的情况。
我的意思是“gavin schulz”,两个词之间的空间。我使用正则表达式,以确保我只允许字母,数字和一个空格。但我不知道如何找到这个空间。这是我现在的情况。
$newtag = preg_replace("/[^a-zA-Z0-9s|]/", "", $tag);
回答
如果你正在寻找一个空间,那将是“ ”(一个空格)。
如果你正在寻找一个或多个,它是“ ”(两个空格和一个星号)或“ ”(一个空格和一个加号)。
如果你正在寻找共同的间距,使用“[ X]”或“[ X][ X]”或“[ X]”,其中X是物理制表符(每个前面都有一个空格在所有的那些实例)。
这些将工作在我见过的每一个*正则表达式引擎(其中一些甚至没有一个或多个“+”字符,ugh)。
如果你知道你将使用一个更加现代的正则表达式引擎,“\ s”及其变化的路要走。此外,我相信单词边界也匹配行的开始和结束,重要的是当您正在寻找单词时可能没有之前或之后的空格。
对于PHP具体来说,这个页面可能有所帮助。
从你的编辑,显示出你似乎想要删除所有非有效字符的开始(注意正则表达式内的空间):
如果你正在寻找一个或多个,它是“ ”(两个空格和一个星号)或“ ”(一个空格和一个加号)。
如果你正在寻找共同的间距,使用“[ X]”或“[ X][ X]”或“[ X]”,其中X是物理制表符(每个前面都有一个空格在所有的那些实例)。
这些将工作在我见过的每一个*正则表达式引擎(其中一些甚至没有一个或多个“+”字符,ugh)。
如果你知道你将使用一个更加现代的正则表达式引擎,“\ s”及其变化的路要走。此外,我相信单词边界也匹配行的开始和结束,重要的是当您正在寻找单词时可能没有之前或之后的空格。
对于PHP具体来说,这个页面可能有所帮助。
从你的编辑,显示出你似乎想要删除所有非有效字符的开始(注意正则表达式内的空间):
$newtag = preg_replace ("/[^a-zA-Z0-9 ]/", "", $tag); # ^ space here如果你还想要其他方法来确保每个单词之间只有一个空格和在开始或结束一个也没有。这是一个更复杂(可能是另一个问题),但基本的想法是:
$newtag = preg_replace ("/ +/", " ", $tag); # convert all multispaces to space $newtag = preg_replace ("/^ /", "", $tag); # remove space from start $newtag = preg_replace ("/ $/", "", $tag); # and end