首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不能匹配多行正则表达式

不能匹配多行正则表达式
EN

Stack Overflow用户
提问于 2020-08-30 09:13:26
回答 1查看 33关注 0票数 1

因此,我一直试图在regex( editpadpro )中匹配,我只想匹配POLYLINE、TYPE=0x6、RoadID,editpadpro风味= Perl、Java、.NET,非常感谢您的任何帮助。

代码语言:javascript
复制
[POLYLINE]
Type=0x6
Label=Lorong Karyawan 18
EndLevel=1
CountryName=MALAYSIA~[0x1d]MYS
RegionName=PAHANG~[0x1d]PHG
CityName=KUANTAN
Zip=25150
RoadID=1154
RouteParam=2,1,0,0,0,0,0,0,0,0,0,0
Data0=(3.77022,103.27289),(3.76988,103.27201)
Nod1=0,283024,0
Nod2=1,282992,0
Numbers1=0,O,55,41,N,-1,-1
[END]

到目前为止,我已经使用了与polyline和Type=0x6匹配的这个Type=0x6。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-30 09:57:25

您可以使用三个捕获组,从捕获[POLYLINE]开始。

对于其他两个捕获组,您可以匹配不以Type或RoadID开头的所有行,然后使用负前瞻性捕获行。

代码语言:javascript
复制
(\[POLYLINE\])(?:\r?\n(?!Type).*)*\r?\n(Type=.+)(?:\r?\n(?!RoadID).*)*\r?\n(RoadID=.+)

Regex演示

解释

  • (\[POLYLINE\]) Group 1 match [POLYLINE]
  • (?:\r?\n(?!Type).*)*\r?\n重复匹配所有不以类型开头的行
  • (Type=.+) Group 2 Match Type=,后面是1+时间
  • (?:\r?\n(?!RoadID).*)*\r?\n重复匹配所有不以RoadID开头的行
  • (RoadID=.+) Group 3 match RoadID=,后面是1+时间
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63655851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档