문자열을 regexp와 일치시키는 데 문제가 있습니다 (저는 정규 표현식에 익숙하지 않습니다). 각 단어와 태그 뒤에 슬래시가 포함 된 문자열이 있습니다. 예 : 그 문자열에서Regexp 정규식이있는 단어 내의 단어
led/O by/O Timothy/PERSON R./PERSON Geithner/PERSON ,/O the/O president/O of/O the/O New/ORGANIZATION
, 나는 /PERSON
앞에 모든 문자열에만 관심이 있습니다. 여기에 내가 생각 해낸 정규 표현식 패턴입니다 :
(\w)*\/PERSON
그리고 내 코드 :
match = re.findall(r'(\w)*\/PERSON', string)
는 기본적으로, 나는 /PERSON
앞에 오는 모든 단어와 일치하고있다. 출력 :
>>> reg
['Timothy', '', 'Geithner']
내 문제는 R./PERSON
에 대한 빈 문자열에 매치 두 번째 경기는, 도트는 단어 문자되지 않는 것입니다. 나는 내 정규 표현식을 변경 :
match = re.findall(r'(\w|.*?)\/PERSON', string)
그러나 경기는 지금 : 그것은 전에 단지 Timothy
일치하는 대신 led/O by/O
을 포함하는 첫 번째/사람에게 모든 것을 가지고있다
['led/O by/O Timothy', ' R.', ' Geithner']
. 누군가가 약어로 전체 중지를 포함하면서이 일치하는 방법에 나를 도울 수 있을까요? 적어도 빈 문자열 일치가 없습니까?
감사합니다, 공백 문자 ([^ ]*
)하지만