【发布时间】:2016-02-24 18:23:31
【问题描述】:
示例字符串
"[] [ds*[000112]] [1448472995] sample string [1448472995] ***";
正则表达式应该匹配
[1448472995] [1448472995]
并且不应匹配[000112],因为有外部方括号。
目前我也有这个匹配 [000112] 的正则表达式
const string unixTimeStampPattern = @"\[([0-9]+)]";
【问题讨论】:
-
换句话说,只有在相同数量的(平衡的)开括号和右括号之后才匹配括号数字?
-
您必须使用平衡文本正则表达式来排除嵌套括号。
-
@Tim :是的,你是对的。
-
我猜你不需要任何平衡组:只需在
\[\d+]模式之后检查]并向前看:\[\d+](?!\S*])。如果它适合你,我会发布解释。 -
然而,
\[\d+](?!\S*])依赖于空白分隔符,[1448472995]or[999] 失败,[[1448472995] *[999]] 则通过