알 수없는 횟수로 입력에 나타날 수있는 패턴을 인식하는 Java 프로그램에서 사용할 정규 표현식을 작성하려고합니다. 내 어리석은 작은 예입니다 알 수없는 반복 그룹을 캡처하는 정규식
String patString = "(?:.*(h.t).*)*";
더 좋은 방법이 있나요? FWIW, 내가 정말로하려고하는 것은 신호 단어 다음에 다른 단어와 구두점이있을 수있는 모든 (아마도 다중 단어) 고유 명사를 선택하는 것입니다. 그래서 "톱"이 신호이고 우리는 "나는 존 스미스와 그의 아내 마가렛과 밥을 보았습니다."나는 "밥", "존 스미스", "마가렛"을 원합니다.
패턴 문자열로'h.t' 만 사용하면 어떨까요? – vbence
'(h.t)'만 사용하면 (캡처 그룹으로 만들려면 괄호로 묶음), 마지막 것 대신 첫 번째 항목 만 얻습니다. (그게 니가 의미 한거야?) – umbraphile
나는 이걸 내가 여기까지 물었다. http://stackoverflow.com/questions/5018487/regular-expression-with-variable-number-of-groups – aioobe