我想使用PCRE正则表达式模式来解析文本,但是当使用java regex包(Pattern
和Matcher
类)编译它时,java正则表达式无法正确编译和解析我的文本。您可以看到它在站点中正常工作
我的scala代码
val pattern = Pattern.compile("date=(?P<date>\\d+-\\d+-\\d+\\stime=\\d+:\\d+:\\d+)")
val matcher = pattern.matcher("Oct 18 16:24:51 192.168.21.254 date=2017-10-18 time=16:24:51 devname=SS_GW_01")
matcher.group("date")
我的错误
java.util.regex.PatternSyntaxException: Unknown inline modifier near index 8
\date=(?P<date>\d+-\d+-\d+\stime=\d+:\d+:\d+)
^
发布于 2018-12-18 15:59:28
只需改变你的行
val pattern = Pattern.compile("date=(?P<date>\\d+-\\d+-\\d+\\stime=\\d+:\\d+:\\d+)")
改成:
val pattern = Pattern.compile("date=(?<date>\\d+-\\d+-\\d+\\stime=\\d+:\\d+:\\d+)")
Java具有不同的语法来创建命名组。
https://stackoverflow.com/questions/-100006315
复制相似问题