【发布时间】:2013-05-04 13:34:19
【问题描述】:
我想使用正则表达式来过滤这个字符串中的子字符串
例如:hello world #level:basic #lang:java:php #...
我正在尝试生成一个结构如下的数组:
Array
(
[0]=> hello world
[1]=> Array
(
[0]=> level
[1]=> basic
)
[2]=> Array
(
[0]=> lang
[1]=> java
[2]=> php
)
)
我试过preg_match("/(.*)#(.*)[:(.*)]*/", $input_line, $output_array);
而我得到的是:
Array
(
[0] => hello world #level:basic #lang:java:php
[1] => hello world #level:basic
[2] => lang:java:php
)
在这种情况下,我将不得不多次将此正则表达式应用于索引,然后应用正则表达式将冒号过滤掉。我的问题是:是否有可能创建一个更好的正则表达式来一次性完成所有工作?正则表达式是什么?谢谢
【问题讨论】:
-
改用
explode -
语法不清楚。遇到哈希后,比赛应该什么时候结束?在下一个哈希?如果是这样,您不能在最后一个哈希之后放置任何“正常”文本,因为它将被视为其中的一部分。您需要收紧语法。