我正在使用Java正則表達式包:java.util.regex的Pentaho上工作。正則表達式 - 忽略字符串的一部分
我想從一個文本文件中的行提取了大量的信息,從雙方開始和結束的字符串:
^StartofString Controls\(param1="(D[0-9]{0,})",param2="(G[0-9]{0,})",param3="([^"]{0,})",param4="([^"]{0,})"\):(?:.*)param5="([^"]{0,})",.*
有串長部分我想忽略,並嘗試與(?:.*)
積極的超前看起來似乎工作,當我在步驟上測試正則表達式,但在執行轉換時不起作用。 我測試上「正則表達式評價」步驟的字符串,「過濾器的行」前一步驟和提取物組的一個Javascript步驟內的布爾檢查:
var pattern = Packages.java.util.regex.Pattern.compile(patternStr);
var matcher = pattern.matcher(content.toString());
var matchFound = matcher.find();
與patterStr是相同的正則表達式一個比在'正則表達式評估'的步驟,但與逃逸字符:\
我已經閱讀了很多關於忽略正則表達式字符串的部分問題,仍然無法找到答案。 歡迎任何幫助。 如果需要,我可以提供更多信息。
不知道你的問題是。有一點是肯定的:'(?:。*)'是一個非捕獲組,不是前瞻。 –
我們可以看到轉換代碼嗎?使用非捕獲組本身並不能解決問題:非捕獲組意味着沒有捕獲組,但匹配的文本仍然存在於輸出中;只是不在一個組 – Aaron
...我混淆了非捕獲組和前瞻。我想要的是在捕捉到字符串的大部分之前,直到達到參數5。 不知道如何看待完整的轉型會有所幫助,而且我不應該顯示明智的信息。 – v01dv01d