preg_replace不按我的意料行事

Rol*_*and 1 php

我在一段文字中有以下图章,我需要用任何内容替换它,以便它从段落中消失.

发送包含CONSULTANTS [45416,2010-05-11]我需要删除[]和[]中的所有内容,而不是[]中的字符可以是任何内容

我尝试了以下但这只删除了[]

$par = preg_replace('/[\[*\]]/','',$par);
Run Code Online (Sandbox Code Playgroud)

cod*_*ict 6

你可以做:

$par = preg_replace('/\[.*?\]/s','',$par);
Run Code Online (Sandbox Code Playgroud)

说明:

/    - Start delimiter
\[   - A literal [
.*?  - A non-greedy anything
\]   - A literal ]
/    - End delimiter
s    - Modifier to make . match even a newline
Run Code Online (Sandbox Code Playgroud)

为了使更换速度更快,你可以做到:

$par = preg_replace('/\[[^\]]*\]/s','',$par);
Run Code Online (Sandbox Code Playgroud)

说明:

/    - Start delimiter
\[   - A literal [
 [   - Start of character class
 ^   - Char class negator
 ]   - End of character class
\]   - A literal ]
/    - End delimiter
Run Code Online (Sandbox Code Playgroud)