當我運行我的測驗時,我有這個 Maven 輸出:
...
[INFO]
[ERROR] Tests run: 77, Failures: 0, Errors: 2, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 42:09 min
[INFO] Finished at: 2022-02-25T10:40:21Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test (default-test) on project ***-***-******-*****: There are test failures.
[ERROR]
...
我想用正則運算式或其他方式捕獲這一行:
Tests run: 77, Failures: 0, Errors: 2, Skipped: 0
我不需要準確地捕捉它,但至少是一般區域,因為每個測驗類都會生成自己的測驗運行、通過等測驗摘要。
到目前為止,我想出的 RegEx 是:
((?<=\[ERROR\]).*\n).*((?=BUILD).*\n)
由于某種原因,這不起作用。
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
你可以使用
\[ERROR](.*)(?:\n(?!.* BUILD\b|\[ERROR]).*)*\n.* BUILD\b
在部分情況下,模式匹配:
\[ERROR\]匹配[ERROR](.*)捕獲組1,匹配整行(?:非捕獲組\n匹配換行符(?!斷言右邊是什么的否定前瞻不是.* BUILD\b匹配BUILD在行|要么\[ERROR]匹配[ERROR]
)關閉前瞻.*匹配整行
)*關閉非捕獲組并可選擇重復\n.* BUILD\b匹配換行符和與BUILD
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434124.html
下一篇:模擬兩個函式會打破回圈?
