因此,我一直在尝试使用正则表达式来解析以下字符串:
INFO: Device 6: Time 20.11.2015 06:28:00 - [Script] FunFehlerButton: Execute [0031 text]
and
INFO: Device 0: Time 09.12.2015 03:51:44 - [Replication] FunFehlerButton: Execute
and
INFO: Device 6: Time 20.11.2015 06:28:00 - FunFehlerButton: Execute
我尝试使用的正则表达式是:
(?<=\\d{1,2}:\\d{2}:\\d{2} - ).*
和
(?<=\\[\\w*\\]).*
其中第一个可以正常运行,第二个可以正常运行。
我的目标是获取文本“ FunFehlerButton:执行...”。
我希望有人可以向我暗示正确的方向。
最佳答案
Java仅在大小受限制并且在lookbehind中的子模式不太复杂的情况下才支持可变长度lookbehind。
简而言之,你不能写:
(?<=\\[\\w*\\]).*
但是你可以这样写:
(?<=\\[\\w{0,1000}\\]).*
但是类似:
(?<=\\[(?:\\w{0,2}){0,500}\\w?\\]).*
由于最大长度不明显,因此不起作用。
关于java - 正则表达式正后方明显最大长度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34616478/