【发布时间】:2021-09-04 07:36:18
【问题描述】:
我目前正在使用正则表达式。我知道如何使用正则表达式检索欧元金额:
r'[+-]?(?:[0-9]*[,])?[0-9]+'
我也知道如何用大写字母检索单词:
r'\b[A-Z]+(?:\s+[A-Z]+)*\b'
但我似乎没有让以下工作。检索欧元金额和 Capital 中第一个 WORD 之间的单词。例如,如果我有以下句子:
€10,95 Hello how are you doing? good or, bad? WORD
我想检索:“你好,你好吗?好还是不好?”
感谢任何帮助。
【问题讨论】:
-
把
(.+?)放在两个模式之间。该捕获组将捕获介于两者之间的单词。 -
re.search(r'\d*,?\d+\s*(.*?)\s*\b[A-Z]+\b', text).group(1)?见regex101.com/r/MpCckx/3 -
你如何定义“单词”?包括标点符号吗?特殊字符、数字呢?
-
@WiktorStribiżew 谢谢你的回答。我更喜欢 Wiktor 的回答,因为它更紧凑。但需要稍微研究一下他的答案。
标签: regex