Regex 如何根据模式从文本体中提取项目?
我正试图想出一种聪明的方法,从文本正文中提取几个项目,而不必编写一个抓住每个部分的大循环。如果这是最好的方法,我并不反对循环,但我想知道像regex之类的东西是否能帮我解决这个问题。假设我有一个正文,如下所示Regex 如何根据模式从文本体中提取项目?,regex,Regex,我正试图想出一种聪明的方法,从文本正文中提取几个项目,而不必编写一个抓住每个部分的大循环。如果这是最好的方法,我并不反对循环,但我想知道像regex之类的东西是否能帮我解决这个问题。假设我有一个正文,如下所示 FOO (1.5) This is a description relating to FOO. BAR (2) Here's another description (not about FOO this time). BAZ (100) 我需要从中提取3项 在帕伦斯之前的标题部分 p
FOO (1.5) This is a description relating to FOO.
BAR (2) Here's another description (not about FOO this time).
BAZ (100)
我需要从中提取3项
regex可以用来可靠地提取这些信息位吗?还是只编写一个提取它们的循环更灵活?您可以在这里使用3个匹配组:
^(\S+)\s+\(([^)]+)\)\s*(.*)$
如果要在该示例中添加第四行文本,我认为当前正则表达式将其视为前一行描述组的一部分。因此,也许我可以将这个正则表达式模式应用于每一行,而不是整个主体。只要您使用
m
(多行)修饰符,您就可以任意使用它。它确实启用了多行。查看这个正则表达式演示,了解我的意思: