gpt4 book ai didi

regex - 打印没有指定单词的行的正则表达式是什么?

转载 作者:行者123 更新时间:2023-12-04 04:55:12 25 4
gpt4 key购买 nike

我有这个输出:

---------- snippet start ----------
JUnit version 4.11
I.E
Time: 0.015
There was 1 failure:
1) testPerson(PersonTest)
org.junit.ComparisonFailure: expected:<John[1]> but was:<John[]>
at org.junit.Assert.assertEquals(Assert.java:115)
at org.junit.Assert.assertEquals(Assert.java:144)
at PersonTest.testPerson(PersonTest.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)

---------- snippet end----------

我只想检索每行开头没有“at”一词的行,但不包括包含“PersonTest.java”一词的行(带有“at”)
非常感谢!

最佳答案

如果 IDE 的正则表达式引擎支持它,规范的方法是使用否定前瞻断言:

(?!^\s*at\b)

(我在末尾放了一个单词边界,以防一行以“附加”开头。)

但是,如果 IDE 不支持环视断言,则您必须执行类似于@HamZa 建议的操作。不过@HamZa 的解决方案有点偏离,因为例如,它还会过滤掉以“as”开头的行。这是正确的:
^\s*([^a\s]|a[^t])

换句话说,在忽略前导空格后,如果您的第一个字符不是 a ,那么你就可以开始了——否则,你只需要确保第二个字符不是 t .

现在,这并没有考虑到“附加”的情况。添加这个:
^\s*([^a\s]|a[^t]|at\w)

tl;博士 这是一个无论如何都应该工作的正则表达式:
^[ \t]*([^a\s]|a[^t]|at[a-zA-Z0-9_])

关于regex - 打印没有指定单词的行的正则表达式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16850646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com