首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于行尾的正则表达式

用于行尾的正则表达式
EN

Stack Overflow用户
提问于 2017-02-13 19:07:42
回答 1查看 14.8K关注 0票数 1

我正在尝试使用正则表达式解析一个GEDCOM文件,就快完成了,但是表达式抓住了文本的下一行,即在行尾有可选文本的行。每条记录应该是一行。

这是该文件的摘录:

代码语言:javascript
复制
0 HEAD
1 CHAR UTF-8
1 SOUR Ancestry.com Family Trees
2 VERS (2010.3)
2 NAME Ancestry.com Family Trees
2 CORP Ancestry.com
1 GEDC
2 VERS 5.5
2 FORM LINEAGE-LINKED
0 @P6@ INDI
1 BIRT

这是我使用的正则表达式:

代码语言:javascript
复制
(\d+)\s+(@\S+@)?\s*(\S+)\s+(.*)

这适用于除末尾不包含任何文本的行之外的所有行,例如第一行。例如,第一条记录的最后一个捕获组包含'1 CHAR UTF-8‘。

以下是来自regex101.com的屏幕截图,显示了紫色捕获组是如何渗入下一行的:

我曾尝试使用$限定符将.*限制为仅为行尾,但失败了,因为第二行也是行尾。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-13 19:16:46

\s模式匹配换行符。将其替换为常规空格或[^\S\r\n],如果是PCRE或[\p{Zs}\t],则替换为\h

代码语言:javascript
复制
(\d+) +(@\S+@)? *(\S+) +(.*)

请参阅regex demo

如果需要匹配线条,可以添加多行选项,并在两侧(参见another demo)添加锚点(图案开头为^,图案末尾为$ )。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42202570

复制
相关文章

相似问题

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