【发布时间】:2017-09-11 11:11:03
【问题描述】:
如何在 Scala 中为双引号应用正则表达式? 我的实际字符串是(tomcat 日志文件)
174.371.196.220 - - [07/Sep/2017:00:06:00 +0000] "GET /cs/v1/points/bal?memberId=2164699082&accountType=10 HTTP/1.1" 200
我的正则表达式模式是
(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})(\\D{1,6})(\\[.+?\\])( \".+?\")( \\d{1,3})
找出IP、时间、请求和状态码。此代码在 java 中正常工作,但是当我尝试在第 3 组 ((\".+?\")) 的 scala 中应用相同的正则表达式时,它无法找到匹配项。我猜双引号在scala表示中会有所不同。任何人都可以帮助我解决这个问题......
在 scala 中我使用这样的模式
val pattern = """(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(\D{1,6})(\[.+?\])( ["])( ".+?")( \d{1,3})""".r
主要是第 3 组(双引号请求 -( ".+?") )造成了问题。 任何帮助将不胜感激......
【问题讨论】:
-
删除
( ["]),看起来是唯一的区别。 -
请参阅下面的完整答案以及示例用法。