正则表达式字符串后跟数字

Yev*_*ago 1 regex

我正在编写一个正则表达式来从 html 字符串中提取类似#Question1#或 的短语#Question125#

患者姓名#Question1#,患者患有#Question2#,患者性别为#Question3#,患者上个月有#Question4#饮酒。他的出生日期是#Question5#

表达式的前半部分很简单#Question,但我还需要匹配一系列未指定长度的数字,并且整个字符串以#结尾。

一旦找到匹配的短语,如何从字符串中仅提取数字?比如#Question312#,我只想得到312?

有什么建议吗?

650*_*502 5

您正在寻找的正则表达式是

/#Question[0-9]+#/
Run Code Online (Sandbox Code Playgroud)

如果需要提取数字,只需将[0-9]+部分括在括号中即可

/#Question([0-9]+)#/
Run Code Online (Sandbox Code Playgroud)

使其成为一个团体。如何使用捕获的组取决于特定的正则表达式实现(例如 python、perl、javascript ...)。例如,在 python 中,您可以将所有这些问题替换为列表中的相应答案

answers = ["Andrea", "Griffini"]
text = "My first name is #Question1# and my last name is #Question2#"
print re.sub("#Question([0-9]+)#",
             lambda x:answers[int(x.group(1)) - 1],
             text)
Run Code Online (Sandbox Code Playgroud)