繁体   English   中英

捕获段落正则表达式中的文本组

[英]Capture text groups in paragraph Regex

我想从段落中捕获标题及其相应的值。

例子,

段落:“介绍:有一个美丽的村庄。结论:故事结束”

使用的正则表达式: \\b([AZ]+(?:\\s+[AZ]+) ):\\s (. ?)(?=\\s \\b(?:[AZ]+(?:\\s+[AZ]) +)*):|$)

输出:[('介绍','有一个美丽的村庄'),('结论':'故事结束')]

这没有问题。 但有时我会得到这样的模式,

段落:“从前有一个美丽的花园。简介:有一个美丽的村庄。结论:故事结束”

预期输出:[('FreeText', '曾经有一个美丽的花园'), ('INRODUCTION', '那里有一个美丽的村庄'), ('CONCLUSION': 'End of the story')]

如果出现一些免费文本,如何实现上述情况。 任何帮助表示赞赏.....

我认为在大多数情况下您无法使用断言背后的回顾,因为案例的长度未知。

您可以尝试匹配文本的开头(如果您向我们展示的段落通常是字符串的外观)。

这将匹配没有自由文本的情况:

^\b([A-Z]+(?:\s+[A-Z]+)):\s(.?)(?=\s\b(?:[A-Z]+(?:\s+[A-Z]+)*):|$)

如果您有以下形式的案例:

^\b([A-Z][a-z]+[.])

然后您知道您有一个以自由文本开头的案例,因为缺少全大写的关键字。 所以你可以在你的正则表达式的开头添加这样的东西,并且只有两种不同的匹配情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM