[英]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.