我试图使用正则表达式。我有这个字符串必须匹配在一个字符串中多次匹配一组
influences =
{{hlist |[[Plato]] |[[Aristotle]] |[[Socrates]] |[[David Hume]] |[[Adam Smith]] |[[Cicero]] |[[John Locke]]}}
{{hlist |[[Saint Augustine]] |[[Saint Thomas Aquinas]] |[[Saint Thomas More]] |[[Richard Hooker]] |[[Edward Coke]]}}
{{hlist |[[Thomas Hobbes]] |[[Rene Descartes]] |[[Montesquieu]] |[[Joshua Reynolds]] |[[Sir William Blackstone|William Blackstone]]}}
{{hlist |[[Niccolo Machiavelli]] |[[Dante Alighieri]] |[[Samuel Johnson]] |[[Voltaire]] |[[Jean Jacques Rousseau]] |[[Jeremy Bentham]]}}
我想从文本中提取以下模板:
{{hlist .... }}
相反,下面的文字已不匹配:
main_interests =
{{hlist |[[Music]] |[[Art]] |[[Theatre]] |[[Literature]]}}
我写了这个正则表达式,但它不起作用
(?:^\|\s*)?(?:influences)\s*?=\s*?(?:(?:\s*\{\{hlist)\s*\|([\d\w\s\-()*—&;\[\]|#%.<>·:/",\'!{}=•?’
á~ü°œéö$àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ]*?)(?=\n))+
我正在使用python。
你想要的只是'hlist'之后的文本还是你想得到没有括号的名字列表? –
我想将括号内的hlist后的文字。此外,由于hlist标签可能出现在其他字段中(请参阅上面的main_interests示例),我想确保我匹配的文本属于精确字段(例如影响)。 –
您可以使用正则表达式影响\\ s * =(?:\\ s * {{hlist(?:\\ s * \\ | \\ [\\ [([^]] +)\\] \ \])+}})*'。它会按照要求捕捉文本。使用C#,您可以使用'matches [0] .Groups [1] .Captures'获取组的所有捕获。 –