2017-01-16 1 views
0

텍스트를 구문 분석하고 단어를 알파 문자 또는 ' 문자 (ASCII로 39)로만 유지하려고합니다. exemple의 경우 : (/가 다른 단어 보여주기 위해 단지이다)숫자를 토큰으로 사용하는 정규 표현식 분리 단어

I know that Dave's car is 'broken'. 

I/know/that/Dave's/car/is/broken 

로 해석되어야한다.

지금까지 내가 가진 :

regex e ("\\b[A-Za-z']+\\b"); 

그러나 이것은 내가 얻고 싶은 최종 결과가 될 것이다 abc/efgabc2efg을 분할하지 않습니다.

답장을 보내 주셔서 감사합니다.

+2

'\ b'는 무엇을 의미 하는가? – Nim

+0

단어 경계와 일치합니다. 이 구현이 최고인지는 모르겠지만 지금은 정확하게 주어진 예제를 파싱 할 수 있지만 두 단어를 숫자로 구분하지는 않습니다. – Daxid

+0

정규식 e ("\\ b [A-Za-z] + (? : '[A-Za-z] +)? \\ b"); 또는 정규식 e ("(? :^[A-Za-z])() : ([A-Za-z] +) Group1의 내용을 찾으십시오. –

답변

0

\\b은 단어 경계에서만 일치합니다.

'은 포함하지만 '으로 시작하거나 끝나는 단어는 일치하지 않을 수 있습니다. C++ 정규식 엔진으로 테스트하지 않았습니다.

regex e ("([A-Za-z]+)|([A-Za-z]+[A-Za-z']*[A-Za-z]+)"); 
+0

답을하면 단어의 머리/꼬리에있는 '이 필요합니다. 예를 들어 "Hello"가 텍스트에 있으면 'Hello'가 표시됩니다. – Daxid

0

U는 #

그것에게 1

다음
(\d+) 

교체 ','

결과를 할 수

데프

abc 방송,

# 2

([a-zA-Z]+) 

결과 :

abc 
def 
관련 문제