进行正则表达式以匹配所有不以时间戳开头的行

任何人都可以解释正确的Java正则表达式是什么,以匹配所有非以时间戳记开头的行。 0-9] {4}-[0-9] {2}-[0-9] {2} </ code>?</ p>

我正在尝试使用 ^ (^ [0-9] {4}-[0-9] {2}-[0-9] {2})</ code>,但它不起作用。</ p>
</ div>

展开原文

原文

Can anybody explain what the correct Java regex is to match all lines that don't start with timestamp [0-9]{4}-[0-9]{2}-[0-9]{2}?

I am trying to use ^(^[0-9]{4}-[0-9]{2}-[0-9]{2}) but it doesn't work.

1个回答



您的 ^(^ [0-9] {4}-[0-9] {2}-[0- 9] {2})</ code>模式匹配以您定义的模式开头的字符串(此处的 ^ </ code>仅匹配字符串的开头)。</ p>

在Go lang中,正则表达式引擎不支持环视,因此很难创建可以完成所需工作的可读正则表达式。 </ p>

我建议您删除所有与模式匹配的行</ p>

 (?m)\ s * ^ [0-9] {4  }-[0-9] {2}-[0-9] {2}。* 
</ code> </ pre>

请参见演示),然后用换行符分割结果以获取与模式不匹配的行。</ p>
</ div >

展开原文

原文

Your ^(^[0-9]{4}-[0-9]{2}-[0-9]{2}) pattern matches a string starting with the pattern you defined (the ^ here just matches the start of a string).

In Go lang, the regex engine does not support lookarounds, and thus it is difficult to create a readable regex that would do the required job.

I suggest you remove all lines that match your pattern

(?m)\s*^[0-9]{4}-[0-9]{2}-[0-9]{2}.*

(see demo) and then split the result with line breaks to get the lines that did not match the pattern.

doujianjian2060
doujianjian2060 因为Go不支持任何环视,所以这是一个非常糟糕的“糟糕”。 请参阅更新的答案以及解决方法建议。 我并不是说这里没有使用正则表达式的方法,但这将是一个长期无法阅读的正则表达式。
3 年多之前 回复
doufu9947
doufu9947 哦,这是给我的,我不好
3 年多之前 回复
dongsui3297
dongsui3297 您确定使用Java java.util.regex吗? 正则表达式的味道是什么?
3 年多之前 回复
douyi0219
douyi0219 感谢您的解释,但是关于不支持的Perl语法,我收到错误消息(?!。是否有任何解决方法?
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐