Java正则表达式匹配关键字列表-非贪婪



我有一个工作的Java正则表达式,除了,鉴于我的逻辑,它是贪婪的。

目的是只匹配包含关键字的4个单词,而不匹配前后的空格或单词或字符。

示例文本:

  Chief Complaint
     · "Lorem ipsum dolor sit amet.."
     · "Lorem ipsum dolor sit amet.."  
    History of Present Illness
     Lorem Ipsum is simply dummy text of the printing and typesetting
    Review of Systems
    Donec luctus metus: Lorem Ipsum is simply dummy text of the printing and typesetting industry.
    Donec luctus metus: Lorem Ipsum is simply dummy text of the printing and typesetting industry.
    Past Medical History
     · Contrary to popular belief, Lorem Ipsum is not simply random text
     · Contrary to popular belief, Lorem Ipsum is not simply random text
    Social History
     · "Lorem ipsum dolor sit amet.."
     · "Lorem ipsum dolor sit amet.."
    Surgical History
     · "Lorem ipsum dolor sit amet.."
    Family History
     · "Lorem ipsum dolor sit amet.."
    Current Meds
     · "Lorem ipsum dolor sit amet.."

我的正则表达式:

^[s]*(?:b(?:[Ss]ubjective|[Oo]bjective|[Aa]llergy|[Ll]aboratory|[Ll]ab|[Aa]llergie|[Ii]mpression|[Pp]lan|[Hh]istory|[Mm]ed|[Ee]xam|[Vv]ital|[Aa]ssessment|[Pp]roblem|[Cc]omplaint|[Ii]llness|[Ss]ystems|List|[Cc]hief|of|[Cc]urrent|[Pp]resent|[Ii]llness|[Pp]ast|[Mm]edica|[A-Za-z]|Comment:)+s?b[s]*){1,4}$

在线测试链接:

http://java-regex-tester.appspot.com/regex/85b4429f-59ed-4a0c-b016-f7a6ddce5344

看起来你的文本格式是一致的。你为什么不这样做呢?

^s{7,8}([^ ].*)$

捕获任何只有7个或最多8个前导空格的内容

最新更新