我有一个需要在Regex中解析的字符串,并且必须使用
组Dear Mr XXXX -Your IndiGo PNR is OFWDUE- 6E 437 29May BOMBLR 0610/0750 and 6E 426 03Jun BLRBOM 1800/1940. Use our app- http://mobile.goindigo.in to check flt. status or book next time.
我写的与我匹配的正则表达式是
Dear (.*?) -Your IndiGo PNR is (.*?)- (.*? ?.*?) (.*?) (.*?) (.*?)/(.*?)\. Use our app- (.*?) to check flt\. status or book next time\.
和
Dear (.*?) -Your IndiGo PNR is (.*?)- (.*? ?.*?) (.*?) (.*?) (.*?)/(.*?) and (.*? ?.*?) (.*?) (.*?) (.*?)/(.*?)\. Use our app- (.*?) to check flt. status or book next time\.
然而,它应该与后者匹配。此外,这些小组对我来说也非常重要,因为我必须从中提取信息。
我该如何处理?我必须在两个正则表达式中进行哪些更改,以便在这种情况下,只匹配第二个?
答案 0 :(得分:0)
您使用的正则表达式过于笼统,因此它们可以匹配比您想要的更多的字符串。
例如亲爱的XXXX先生,XXXX肯定会有一个名字,所以你可以从你的正则表达式中排除数字。
其他正则表达式只匹配数字或大写字符串,因此您可以更具选择性并捕捉正确的模式。当然,如何编写正则表达式还取决于您使用的是哪种编程语言。