regx - 从文本中提取下划线和点之间的所有内容

时间:2015-06-04 00:03:09

标签: regex

我想在本文中提取_.之间的所有内容:

CIL20150424_NSGS02RPK.dat
CIL20150424_NSU01MAH.dat

给我这些比赛:

NSGS02RPK
NSU01MAH

我正在使用此site,我能做的最好的事情就是找到_使用否定的展望:

\d(_=?)

但是这也选择了4 4_

如何在此文本中选择_.之间的所有内容?

4 个答案:

答案 0 :(得分:2)

此正则表达式与您的目标匹配:

(?<=_).*?(?=\.)

请参阅live demo

正则表达式使用后面的下划线,不情愿的量词(如果每行不止一个),并且前瞻一个点(你必须转义以匹配文字)点)。

顺便提一下你的尝试(_=?)不是向前看,它是一个被捕获的(括号内)下划线,后跟一个可选的等号。

答案 1 :(得分:0)

我会通过将您想要的部分捕捉为一个组_([^.]+)

来实现

enter image description here

答案 2 :(得分:0)

[^_]+_([^\.]+)\.

也许我错过了什么。这会将所有内容跳到下划线,然后捕获下划线和句点之间的所有内容。

答案 3 :(得分:0)

您可以使用下面的简单正则表达式并抓取捕获组中的内容:

_(.*)[.]
or
_(.*)\.     it's up to you to choose what you like most

<强> Working demo

Regular expression visualization

匹配信息

MATCH 1
1.  [12-21] `NSGS02RPK`
MATCH 2
1.  [38-46] `NSU01MAH`