我正在尝试设计一些正则表达式模式,以逗号分隔的字符串形式获取子字符串。我只知道该子字符串之前的逗号数。
这是日志:
str1,2019/05/22
15:29:09,012001028720,THREAT,vulnerability,1,2019/05/22
15:29:09,IP1,IP2,0.0.0.0,0.0.0.0,some info here,,,ftp,
这是我尝试过的正则表达式:
.*vulnerability[,]{1}(.*)
这是我的正则表达式的结果:
1,2019/05/22 15:29:09,IP1,IP2,0.0.0.0,0.0.0.0,some info here,,,ftp,
显然,由于我不知道如何遍历逗号,因此正则表达式完全错误。如何跳过11个逗号并获取ftp子字符串?
答案 0 :(得分:1)
您可以重复匹配,而不要用逗号后跟逗号[^,\n]*,
在第一个示例中,您可以重复{8}
次,对于第二个示例,可以使用量词重复{9}
次,然后将您的值捕获到捕获组中。
^(?:[^,\n]*,){9}([^,\n]+)