2015-10-27 2 views
0

У меня есть работающее Java Regex, за исключением того, что, учитывая мою логику, он жадный.Java Regex To Match List KeyWords- Non Greedy

Цель состоит в том, чтобы соответствовать только 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.." 

Мой Regex:

^[\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}$ 

Интернет Tester Ссылка:

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

Можете ли вы предложить изменить?

+0

Не могли бы вы привести пример правильного вывода? – albertoiNET

+0

Да. Это то, о чем я не беспокоюсь. Потому что я в конечном итоге передам ключевые слова из списка. – WeShall

+0

Что вы подразумеваете под 4 словами? – ergonaut

ответ

0

Похоже, что ваш текст форматируется последовательно. Почему бы вам просто не сделать это?

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

Что фиксирует все, что имеет только 7 или не более 8 ведущих пространств.

+0

Я боюсь, что это может не сработать. Поскольку реальный текст может не совпадать с тем же количеством пробелов через – WeShall

+0

Но похоже, что вы соответствуете титрам. Что делать, если ключевые слова находятся внутри абзацев? – ergonaut

+0

Тогда мы будем игнорировать их. Они выпадают из контекста. – WeShall