我有一个像这样的字符串
*PMGFEC«
1.1GURRALA/KALPANA*ADT 2.1GURRALA/BHARGAVSRIRAM REDDY*ADT
3.1GURRALA/TEJASVI REDDY*CNN
1 DL 32T 30MAY Q ATLAMS HK3 745P 1040A 31MAY F
/DCDL*F9L4QB /E
2 KL 871N 31MAY F AMSDEL HK3 150P 130A 01JUN J
/DCKL*7XZRBF /E
3 AI 560G 01JUN J DELHYD HK3 650A 850A /DCAI*YCH0F /E
4 9W 452W 08AUG Q HYDBOM HK3 605P 735P /DC9W*PYZJQH /E
5 DL 49T 09AUG F BOMAMS*HK3 110A 700A /DCDL*F9L4QB /E
6 DL9390T 09AUG F AMSDFW*HK3 1045A 155P /DCDL*F9L4QB /E
OPERATED BY KLM ROYAL DUTCH AIRLINES
7 OTH YY 09APR W GK1 NYC
TKT/TIME LIMIT
我希望PMGFEC来自* PMGFEC«使用正则表达式我该怎么做
目前我正在使用\*\w{6}\«
,但它会抓取*PMGFEC«
也
我想在美元和最后一个空间之间获取1568.41我该怎么做
NAME PQ TYPE TKT DES CREATED TKT TTL
1.1 1 14MAY USD 1568.41
2.1 1 14MAY USD 1568.41
3.1 2 CNN CH25 14MAY USD 1363.41
答案 0 :(得分:2)
这应该[*]([a-zA-Z]{1,6})[«]
。您可以替换包含所需文本的其他字符。
答案 1 :(得分:1)
您可以使用lookaround assertions仅匹配所需部分,而不是使用捕获组:
(?<=\*)\w{6}(?=\«)
答案 2 :(得分:0)
您需要使用由(...)
指示的group来仅捕获您感兴趣的字符。然后,您可以检查结果的Groups
属性以提取该文本
例如:
var result = Regex.Matches(input, @"\*(\w{6})«")[0].Groups[1].Value;
Console.WriteLine(result); // PMGFEC