我遇到以下情况: 我想提取一个数字块(随机和非特定长度),然后通过正则表达式用下划线分隔:
Example: 111_234_4123_2341
Select first: 111
Secondly : 234
thirdly: 4123
有人可以帮帮我吗?任何帮助表示赞赏!
最诚挚的问候 P上。
答案 0 :(得分:0)
看起来你想要一个用下划线_字符分隔的特定段, 这几乎就像分裂。 如果它被量化不止一次,那么使用的正则表达式引擎很可能会覆盖一个组。 你可以利用这样的东西来利用它:
(?:(\d+)_?){n}
返回第二段(n'th
):123 _ 456
_ 789
(?:
( \d+ ) # (1)
_?
){2}
这个正则表达式有问题。 它要求段中的下划线之间存在某些内容,否则正则表达式将不匹配。
有一种方法可以在下划线之间不需要数字的情况下执行此操作 但仍然需要至少n-1下划线。 这使用先行断言和捕获缓冲区2作为标志。
(?:(?!\2)(\d*)(?:_|$())){n}
(?:
(?! \2 )
( \d* ) # (1)
(?:
_
| $
( ) # (2)
)
){2}