所以我一直在尝试使用正则表达式来解析以下字符串:
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} - ).*
and
(?<=\\[\\w*\\]).*
其中第一个运行正确,第二个则出现异常。
我的目标是获取文本“FunFehlerButton:执行...”。
我希望有人能提示我正确的方向。
仅当大小有限并且lookbehind中的子模式不太复杂时,Java才支持可变长度lookbehind。
简而言之,你不能写:
(?<=\\[\\w*\\]).*
但你可以写:
(?<=\\[\\w{0,1000}\\]).*
然而像这样的东西:
(?<=\\[(?:\\w{0,2}){0,500}\\w?\\]).*
不起作用,因为最大长度不明显。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)