好的,所以我试图想出一个PHP方法,删除我正在做的空白项目符号列表。
这是我的一个例子:
http://rubular.com/r/01ydqcWx3Q
但我似乎无法得到它只抓住空白的[*]所以我可以删除它们...... 这是抓住非空白的..所以我可以把它放在下面的$ matches变量中:
preg_match('/\[\*\][A-z0-9 ]+/', $body, $matches);
但是..我希望$ matches由空白组成,所以我可以删除它们..或者如果除了[list]之外还有一种方法可以获取除了匹配之外的所有内容..
正如你所看到的那样,它正在抓住[/ list]中的[也不是我想要的东西]。 其中一些只有两个空白,三个空白,一个空白或......更多......
任何帮助都将不胜感激。
谢谢!
答案 0 :(得分:0)
使用它来捕获仅包含[*]
的字符串:
^\[\*\]$
然后说明:
preg_replace('/^\[\*\]$/', '', $body);
答案 1 :(得分:0)
如果您想将[*]
与正则表达式匹配,则必须使用反斜杠转义所有三个字符,因为它们是meta-characters。接下来,您必须确定[*]
后面是否紧跟换行符(\n
或\r\n
)或列表末尾([/list]
)。然后用空字符串替换它。
$body = "[list][*]Hydrogen
[*]
[*]Helium
[*]Lithium
[*]
[*]
[*]Beryllium
[*]Boron
[*]Carbon
[*]Nitrogen
[*]
[*]Oxygen
[*][/list]";
$body = preg_replace("/\[\*\](?:\r?\n|(?=\[\/list\]))/", "", $body);
print($body);
输出将是:
[list][*]Hydrogen
[*]Helium
[*]Lithium
[*]Beryllium
[*]Boron
[*]Carbon
[*]Nitrogen
[*]Oxygen
[/list]