如何在逗号分隔的字符串中获取子字符串?

时间:2019-05-22 15:06:59

标签: regex string comma

我正在尝试设计一些正则表达式模式,以逗号分隔的字符串形式获取子字符串。我只知道该子字符串之前的逗号数。

这是日志:

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子字符串?

1 个答案:

答案 0 :(得分:1)

您可以重复匹配,而不要用逗号后跟逗号[^,\n]*,

在第一个示例中,您可以重复{8}次,对于第二个示例,可以使用量词重复{9}次,然后将您的值捕获到捕获组中。

^(?:[^,\n]*,){9}([^,\n]+)

Regex demo