2013-09-26 114 views
1

我正在寻找一个正则表达式来帮助我匹配两个字符串之间的文本。正则表达式在两个字符串之间

我有以下字符串

Daily Update From: x.mydomain.local on DC01-PC 

我使用正则表达式如下

(?m)From: .*?on 

但我要的是严格仅从串拉x.mydomain.local。

有谁知道我该如何做到这一点。

干杯,

+0

做什么你需要'(?m)'作为?这个修饰符只适用于锚点'^'和'$',你不会在你的正则表达式中使用它们,所以使用修饰符'(?m)'是没有用的。 – stema

回答

3

您可以使用一个捕获组(那么你会得到x.mydomain.local第一个捕获组):

(?m)From: (.*?) on 

或者使用lookarounds:

(?m)(?<=From:).*?(?= on) 
+0

这不是第二个捕获组吗? –

+1

@KlasLindbäcknope,因为'(?m)'不是一个捕获组。它只是设置'm'修饰符。 – HamZa

+0

@KlasLindbäck'(?...)'是保留给修饰符的,你可以有'(?s)','(?m)','(?i)'等,这取决于支持什么。 (你甚至可以合并它们:'(?smi)')m是多行的,如果是单行的,我是不区分大小写的。 – Jerry

相关问题