我有一个字符串
2012-02-19 00:11:12,128|DEBUG|Thread-1|@@@ Time taken is 18 ms
在regex下面,我可以搜索18 ms
\d\d\s[m][s]
我想要做的是在Notepad ++中搜索18 ms
之前的字符串,然后将其删除。因此,在我拥有的数千行中,我可以提取时间。
另外,我需要上面提到的正则表达式来处理3位数和2位数的时序。例如,它应该能够搜索18 ms
以及999 ms
。
请帮忙。
答案 0 :(得分:2)
你可以把正则表达式放在积极的前瞻中:
^.*(?=\d{2,3}\sms\s*$)
如果您在18 ms
之后有一些文字,则需要使用word boundary \b
:
形式的正则表达式进行搜索
\b
允许您仅执行"整个单词"使用\bword\b
^.*(?=\d{2,3}\sms\b)
请参阅demo
{2,3}
是一个limiting quantifier,可让您匹配前面的子模式中的2个或3个。
还有一个额外的量词,可以指定令牌重复的次数。语法为
{min,max}
,其中min为零或表示最小匹配数的正整数,max
是等于或大于min
的整数,表示最大匹配数。如果逗号存在但省略max
,则最大匹配数为无限。
您可以使用空字符串替换,18 ms
将保留在该行上。
注意您可以使用\d+
来匹配一个或多个数字(不限制数字编号)。
注意2 :如果您的号码是第一个,您需要使用延迟匹配,即使用.*?
代替{{1在模式的开头。
答案 1 :(得分:1)
另外,我需要上面提到的正则表达式来处理3位数和2位数的时序。
.*
使用上面的正则表达式,然后用空字符串替换匹配。
答案 2 :(得分:1)