比如我要匹配[0-9]+,但首尾的不匹配(首尾的连续数字都忽略),应该如何写呢?
例:123abc45d678efg90,应该匹配到 45 和 678
比如我要匹配[0-9]+,但首尾的不匹配(首尾的连续数字都忽略),应该如何写呢?
例:123abc45d678efg90,应该匹配到 45 和 678
|
ryd994Jun 7, 2018 via Android
1
头尾用^[0-9]*先过滤掉
|
|
ryd994Jun 7, 2018 via Android
2
呃,^[0-9]+ 和 [0-9]+$
|
|
ryd994Jun 7, 2018 via Android
3
如果你是要 group capture 的话
^[0-9]*[^0-9]+([0-9]+)[^0-9]+[0-9]*$ 这样大概能行 |
|
eggshellJun 7, 2018
4
零宽断言可以做到 (?<!^)(?<!\d+)\d+(?!\d+)(?!$)
不过 应该有更好的写法吧。。 |
|
zynlpJun 7, 2018 via iPhone
5
用断言吧
|
|
RemovableJun 7, 2018
6
零宽断言应该可以的,不过如果你是用在 js 里的话,那除了 Chrome 外的浏览器都不支持后发断言
|
|
eggshellJun 7, 2018
7
(?<!^\d*)\d+(?!\d+)(?!\d*$)
|
|
liberizeJun 7, 2018
8
|
|
9
@liberize 多谢,我对正则没学那么深入,这我都看不懂😂
|