【发布时间】:2018-10-03 16:31:50
【问题描述】:
正则表达式问题。我想让下面的前四个字符串匹配。输出应该是 _ 和 . 之间的 3 个字符。
因此这些将匹配:
_20101_Bp16tt20_KG2.asc
_201_Bondp0_KGB.ASC
_2011_rndiep16tt20_232.AsC
_20101_odiep16tt20_ab3.ASC
应该分别返回KG2、KGB、232、ab3。
这些将不匹配:
_2_ordep16tt.asc
__Bndt20_pippo_K.asc
我可以通过 ((?<=_)(...)(\.(?i)(asc))) 选择整个块 _KG2.asc。但是,我只想要KG2。我认为我应该积极地向后看,但我的尝试都失败了。你能帮帮我吗?
【问题讨论】:
-
您需要积极向前看而不是向后看。试试
_\K...(?=\.)
标签: regex pcre lookbehind