【发布时间】:2013-11-08 17:35:05
【问题描述】:
我想写一个正则表达式,这样我只匹配第一个不被方括号括起来的数字。
例如asdadsas,*&(*&(*2asdasd*U(*&*()&(*3 应该匹配 2(没有方括号)
和asdadsas,*&(*&(*[2]asdasd*U(*&*()&(*3 应该匹配 3
我目前的正则表达式是:(?<!\[)[0-9](?!\])
但是,我遇到的问题是 [2 仍应匹配 2。
我只想跳过左边有[ 和右边有] 的号码。
我不知道如何(或者是否可能)在正则表达式中实现这种条件逻辑。
【问题讨论】:
-
澄清:数字是方括号中唯一的东西吗?如果字符串开头附近有
[2a],应该跳过还是返回? -
嗯。你知道我没有想到什么......我认为就这个问题而言,这并不重要。但如果你能同时展示两种方式会很酷:p 即如果它只适用于 [2] 我会给你打勾:)
-
你需要指定你正在使用的语言。java不支持lookbehind中的量词,javascript根本不支持lookbehind
-
+1 我们这里有一个很好的正则表达式问题:目标通过示例很好地说明,OP 已经做出了合理的尝试(这在大多数情况下都有效),并且显示了问题(再次举例)并清楚地解释。
-
@iamnotmaynard 唯一缺少的是缺少哪个正则表达式引擎,但仍然值得 +1
标签: regex