我需要提取下面单行字符串中显示的长数据格式:
Fred,0 Dave,0 Rupert,0 Larry,1 Barry,0 Steve,1 RTE1832 : London***11.2.0.4.0***RE22/1***20170321075456***SS/D20
名称和名称的数量发生了变化,因此我想使用***
分隔符进行提取。帮助赞赏。
编辑:尝试了\ s * \ * \ * \ * \ s *但需要获得正确的群组。
答案 0 :(得分:1)
如果在***
第三次出现后需要***
包围的子字符串,则此正则表达式为:
(?:.*?\*{3}\s*){3}(.*?)\s*\*{3}
将使用所需数据填充第一个捕获组。
说明:
.*?
- 为了避免吞咽***
\*{3}
- 字面意思*
三次\s
- 可选地后跟空格(?:.*?\*{3}\s*)
- 以上所有内容连接在一起(?:.*?\*{3}\s*){3}
- ...重复三次(.*?)
- 任何内容(懒得再次停在***
分隔符上) - 在群组中捕获\s*
- 可选地后跟空格\*{3}
- 以及结算分隔符