secNm:ATA,_class:com.dddao.domaffin.summaggrfy.GddenericMohsg},{ttlRec:0,ttlVal:{:0}secNm:B2B,_class:com.xyz.dakjdain.sfffummary.GenericMo73hs}extra
secNm:ATA,_class:com.dddao.domaffin.summaggrfy.GddenericMohsg},{ttlRec:0,ttlVal:{:0} secNm:B2B,_class:com.xyz.dakjdain.sfffummary.GenericMo73hs
在上面我要删除的字符串, 对于字符串1:来自",_ class"并在第一次出现时结束"}" 对于字符串2:来自",_ class"如果第一个条件失败,直到结束。
secNm:ATA,{ttlRec:0,ttlVal:{:0}secNm:B2Bextra
secNm:ATA,{ttlRec:0,ttlVal:{:0}secNm:B2B
此类型的模式在上面的字符串中存在不可确定的时间。 我想要简单的想要删除那些部分。
我写过正则表达式函数gsub(/,_class(.*?)\}/,"",$0)
我只想使用gawk正则表达式函数只回答其他方法。 我上面给出的函数有一些问题并删除了大部分字符串。 请帮我纠正我的正则表达式。
提前致谢。
答案 0 :(得分:1)
您可以使用[^}]
否定括号表达式来匹配除}
之外的任何字符,因为不支持延迟量词。
此外,你甚至不需要这里的分组构造,因为你没有在这里引用捕获的值。您可以安全删除(
和)
。
使用
/,_class[^}]*}/
基本上,这应理解为:
,_class
- 匹配,_class
substring [^}]*
- 除}
}
- 包括}
。