我有这个字符串:
*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 。
你能帮我吗?
答案 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(
子字符串[^)]*
- 除)
\),
- ),
子字符串Field[0-9]+=0\(
- Field
子字符串后跟1位数字,然后是=0(
substring ([^)]*)
- 第1组:除)
以外的任何0 +字符。