【发布时间】:2020-09-09 16:04:27
【问题描述】:
嘿,所以我想使用正则表达式匹配 txt 文件中的多行 (Editpad Pro,Flavor java,它使用 RegexBuddy)
~Example 1
[POLYLINE]
Type=0x6
Label= ABC
CountryName=Singapore
Zip=12345
RoadID=38752
Data0=(3.39466,102.48391),(3.39435,102.48413)
Nod1=0,309594,0
Nod2=19,309595,0
[END]
~Example 2
[POLYLINE]
Type=0x6
Label=CBB
CountryName=MALAYSIA
Zip=26100
RoadID=27121
RouteParam=2,1,0,0,0,0,0,0,0,0,0,0
Data0=(3.85552,103.36551),(3.85532,103.36563)
Nod1=0,290397,0
Nod2=1,290105,0
[END]
我想使用反向引用来匹配 [POLYLINE] 到 RoadID 的原因是因为我想在这种情况下替换或添加因为我没有替换任何文本,只需在 RoadID 和 Data0 行之间添加 RouteParam,就像在 Example 2 中一样,所以我想编写将 [POLYLINE] 与 RoadID 匹配的代码,同时忽略那些已经具有 RouteParam 的代码,如示例 2 并添加 RoadID 和 Data0
线之间的 RouteParam到目前为止,我使用的这段代码将与没有 RouteParam 的 POLYLINE 匹配并且它工作正常,但我想使用反向引用以便我可以替换
(\[POLYLINE\])(?:\r?\n(?!Type).*)*\r?\n(Type=0x6)(?:\r?\n(?!RoadID).*)*\r?\n(RoadID=.+)(?:\r?\n(?!RouteParam).*)
【问题讨论】:
标签: regex