gpt4 book ai didi

php - 匹配正则表达式中的空格

转载 作者:IT老高 更新时间:2023-10-28 11:39:50 25 4
gpt4 key购买 nike

如何匹配 PHP 正则表达式中的空格字符?

我的意思是像“gavin schulz”,两个词之间的空格。我使用正则表达式来确保我只允许字母、数字和空格。但我不知道如何找到空间。这就是我现在拥有的:

$newtag = preg_replace("/[^a-zA-Z0-9s|]/", "", $tag);

最佳答案

如果您正在寻找一个空格,那就是 ""(一个空格)。

如果您要查找一个或多个,则为 "*"(即 两个 空格和一个星号)或 "+" (一个空格加一个加号)。

如果您正在寻找公共(public)间距,请使用 "[ X]""[ X][ X]*""[ X] +" 其中 X 是物理制表符(在所有这些示例中,每个前面都有一个空格)。

这些将在我见过的每个* 正则表达式引擎中工作(其中一些甚至没有一个或多个 "+" 字符,呃)。

如果您知道您将使用更现代的正则表达式引擎之一,"\s" 及其变体就是您的最佳选择。此外,我相信单词边界也与行首和行尾相匹配,这在您查找可能出现的单词前后没有空格时很重要。

对于 PHP,this page可能会有所帮助。

从您的编辑中,您似乎想要删除所有无效字符。开头是(注意正则表达式内的空格):

$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

关于php - 匹配正则表达式中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/559363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com