正则表达式提取短语,所有大写字母以冒号结尾

时间:2011-02-22 02:32:14

标签: regex

我需要一个正则表达式,它将返回一个以冒号结尾的短语集合。例如:

入院治疗:Vasotec 40 mg q.day,Soma 1片q.day,Demerolprn,可乐定。过敏:患者没有已知的药物过敏。过去的医疗历史:如上所述。 家族史:家族史对糖尿病呈阳性,对癌症呈阳性。

我需要提取以下内容:

关于入院,过敏,家庭历史的药物

感谢。

3 个答案:

答案 0 :(得分:2)

这样的事情应该有效:[A-Z ]+ :

[A-Z]获取任何字母或空格;加号搜索其中一个或多个组的组。冒号不是一个特殊的角色,不需要逃脱。

如果这是一个选项,请确保您的搜索区分大小写。

答案 1 :(得分:1)

您好,您可能想尝试一下:

/([A-Z]*\s+?)+:/um

答案 2 :(得分:0)

如果您的文本是由多个段落组成的单个块,则必须启用一个选项以将换行视为普通字符。这取决于您的正则表达式库和选择的语言。

如果你想从这样的单个块中提取多个短语,你还必须将基本模式包含在一个重复的组中,并使用适当的通配符(“[^ AZ] *”)来忽略后续的非短语文本。同样,如何做到这一点取决于您选择的库和语言。

如果您分别处理每一行并收集短语,则无需这样做。