String 用于匹配两个固定词之间特定段落的第一个匹配项的正则表达式
我有一个大文本,我必须从“通话费”中选择文本,直到第一次出现“总计”。 如果我说的是“电话费”,那么它不应该与“电话会议费”匹配 什么是正则表达式呢String 用于匹配两个固定词之间特定段落的第一个匹配项的正则表达式,string,matching,String,Matching,我有一个大文本,我必须从“通话费”中选择文本,直到第一次出现“总计”。 如果我说的是“电话费”,那么它不应该与“电话会议费”匹配 什么是正则表达式呢 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:0
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
我假设您希望在行首匹配“通话费”,因此您可以使用
^Call Charges
作为开始,使用^Total
作为结束。诀窍是使用
^
匹配行的开头。类似地,您可以使用$
匹配行尾。您没有指定您使用的语言,但是如果启用多行模式(因此^
和$
匹配行首和行尾)和点捕获所有模式(因此
也捕获新行),您可以通过简单的行匹配开头+前瞻组轻松完成:
^Call Charges.*?(?=^Total)
不,它不匹配,因为有这么多行,它匹配最后一个“总数”,你说它不匹配是什么意思?您搜索了
^通话费
,但没有找到任何内容?您使用的是哪种语言/程序?您是否尝试过不适合您的正则表达式?请分享。如果您希望通过或类似方式共享,则更好。或者,您可以添加\n
以匹配换行符:^通话费(.*\n)*?(?=^总计)