正则表达式,匹配已发布的文本

时间:2017-10-17 11:33:02

标签: nsregularexpression

我有这个字符串:

*Field1=0(1936-S),Field13=0(2),Field2=0(),Field4=0(19.01.17),Field3=0(),Field5700=0(),Field5400=0(KS),Field14=0(21)*

我需要存储FieldN的第n个值,所以我尝试了这个: (?<=Field[0-9]=0){4}?.*?(?=,)

当我把 N = 4 时,这给了我(1936-S),我希望 19.01.17

你能帮我吗?

1 个答案:

答案 0 :(得分:0)

您可以使用

^\*(?:Field[0-9]+=0\([^)]*\),){3}Field[0-9]+=0\(\K[^)]*

demo)或基于捕获组的模式:

^\*(?:Field[0-9]+=0\([^)]*\),){3}Field[0-9]+=0\(([^)]*)

请参阅regex demo

<强>详情

  • ^ - 字符串的开头
  • \* - *字符
  • (?:Field[0-9]+=0\([^)]*\),){3} - 3个序列:
    • Field - Field子字符串
    • [0-9]+ - 一位或多位
    • =0\( - =0(子字符串
    • [^)]* - 除)
    • 以外的任何0 +字符
    • \), - ),子字符串
  • Field[0-9]+=0\( - Field子字符串后跟1位数字,然后是=0( substring
  • ([^)]*) - 第1组:除)以外的任何0 +字符。