【发布时间】:2011-01-22 00:31:33
【问题描述】:
考虑以下字符串:
1: cccbbb
2: cccaaabbb
我希望得到这样的匹配:
1: Array
(
[1] =>
[2] => bbb
)
2: Array
(
[1] => aaa
[2] => bbb
)
如何在一个 RegExp 中同时匹配两者?
这是我的尝试:
#(aaa)?(.*)$#
我尝试了许多贪婪和不贪婪修改的变体,但都没有成功。只要我添加“?” [2] 中的所有内容都匹配。使 [2] 变得不贪婪并没有帮助。
如果我省略“ccc”,我的 RegExp 会按预期工作,但我必须在开头允许其他字符...
【问题讨论】:
-
你能比
.*更好地指定第二部分吗?也许是b*? -
可惜不是,我只知道第一个
aaa应该匹配在[1]中 -
那么
aaa之前的部分呢? -
也可以不指定,当然只是不包含
aaa。我也尝试了匹配ccc的 RegExp 的其他变体,但我没有任何运气。 -
你能描述一下ccc部分吗?如果不能,在第一种情况下如何只得到 bbb 而没有 ccc?