我有一个大文本,我必须从“通话费”中选择文字,直到第一次出现“总计”。 如果我说“通话费”,则不应与“电话会费”相匹配 那个正则表达式应该是什么?
SMS Charges Usage Free Usage Charged Usage Charges
Total 344 33 23
Call Charges Usage Free Usage Charged Usage Charges
Min:Sec Min:Sec Min:Sec Rs
Local 552:00 150:00 402:00 158.40
Local to CUG 42:00 0:00 42:00 0.00
STD 26:00 0:00 26:00 13.00
ISD 259:00 0:00 259:00 811.40
Total 879:00 150:00 729:00 982.80
Conference Call Charges Usage Free Usage Charged Usage Charges
Min:Sec Min:Sec Min:Sec Rs
Total 345 344
STD 9:00 0:00 9:00 4.50
ISD 8:00 0:00 8:00 11.20
Total 17:00 0:00 17:00 15.70
Total 344 33 23
SMS Charges Usage Free Usage Charged Usage Charges
SMS SMS SMS Rs
SMS Local 2 2 0 0.00
Total 2 2 0 0.00
National Roaming Charges Usage Free Usage Charged Usage Charges
Min:Sec/SMS/MB Min:Sec/SMS/MB Min:Sec/SMS/MB Rs
Incoming Calls 17:00 0:00 17:00 0.00
Total 0.00
答案 0 :(得分:0)
我认为你想要匹配"通话费"在该行的开头,您可以使用^Call Charges
作为开头,^Total
作为结尾。
诀窍是使用^
来匹配行的开头。同样,您可以使用$
来匹配行尾。
答案 1 :(得分:0)
您没有指定您使用的语言,但是如果您启用多线模式(因此^
和$
匹配线的开头和结尾)并且点捕获所有模式(所以.
也会捕获新行),您可以通过简单的行匹配开头+前瞻组来轻松完成:
^Call Charges.*?(?=^Total)