我正在尝试使用正则表达式清除一些用户输入以删除[和]并删除任何大于1个空格的空格。但我似乎无法摆脱我所追求的效果。这是我第一次使用正则表达式,所以我对如何写出来感到有点难过。
(preg_replace("[\[\]]\s{2,}"), "", $source);
这就是我用来基本上格式化
[Hello World ]
进入
Hello World
然而,当我输入信息时,似乎删除了整个信息。
答案 0 :(得分:0)
使用交替:
$result = preg_replace("/[[\]]|\s{2,}/", "", $source);
你也错过了PCRE delimiters(开头和结尾的/
)。
请注意,Hello World
(有两个空格)的情况将变为HelloWorld
。您还可以进行多次替换:
$result = preg_replace(array("/[[\]]/", "\s+"), array("", " "), $source);
答案 1 :(得分:0)
试试这些正则表达式
preg_replace('/\[.*\]/', '', $str);
preg_replace('/\[.*?\]/', '', $str);
答案 2 :(得分:0)
使用两个单独的正则表达式替换:
/[\[\]]/ → ""
/\s(\W)/ → "$1"
这样,Hello World
(带有两个空格)的内容将变为Hello World
而不是HelloWorld
,但Hello World !
仍会变为Hello World!
。
答案 3 :(得分:0)
$test = "[Hello World ] ";
print preg_replace("/\[|\]|\s{2,}/", "", $test);
答案 4 :(得分:0)
这可能不是你想到的,但你可以只选择单词,然后修剪它。
r'\w+\s' == 'Hello World '
trim() == 'Hello World'