2011-10-27 5 views
0

저는 정규 표현식 전문가는 아니지만 간단한 정규식 작성법을 알고 있습니다. 그러나이 유형에 대해서는 "SU", "RU", "IN"과 같은 특정 텍스트를 어떻게 검색합니까? 다음은 샘플 데이터입니다 :문자열에 특정 키워드 가져 오기

문자열은 다음과 같이이다 :

enter image description here

+0

2 군에있다? SU, RU, IN과 같은 텍스트를 매치 할 때 어려운 부분이 있습니까? –

+1

자세한 내용을 입력하십시오. 텍스트가 아닌 텍스트의 예제 텍스트. 문제가 어디 있습니까? 무엇을 일치시키고 싶습니까 (귀하의 결과가되어야합니다)? 귀하의 표현이 실제로 일치합니까? – stema

+0

형식 때문에 그 위의 이미지는 정확히 작업중인 문자열의 구조입니다. 문제는 특정 단어 "IN"을 얻고 싶다는 것입니다. – ivatanako

답변

0

당신이 "INPUT"을 정확하게 단어 "IN"와 일치하지 원하는 경우에 당신은 단어 경계를 사용해야합니다.

\bIN\b 

단어 경계 \b는 비 단어 문자로 단어 문자로부터의 변경 (모든 문자, 숫자 및 밑줄) (다른 모든 문자)와 일치합니다.

당신이 그 단어의 목록이있는 경우에는 (이미 단어 경계와 결합) 목록에 넣을 수

\b(IN|SU|RU)\b 

이 "IN"또는 "SU"또는 "RU"

중 하나와 일치합니다

이 답변으로 문제가 해결되지 않으면 질문에 세부 정보를 추가하십시오. 행에서 더 많은 정보를 얻을 그것의 가능한 물론

: 때문에 주석의 요청

. (단 사진이 있기 때문에) 나는 당신이 행은 "시험과 같이 보입니다 행

  • 하여이 행을 읽고 생각 나는 당신의 데이터에 대한 몇 가지 가정을 만드는 중이라서

    1. 을이 답변을 ----- - ------- 0/0 IN "
    2. 는"테스트 "행의 시작 부분에 바로
    그런 다음 얻을 수

    "RegexOptions.Multiline를 사용하여와 테스트 "(이것은하기 위해 필요 ^은 행의 시작과 일치 함)

    ,
    ^(\w+).*?\b(IN|SU|RU)\b 
    

    첫 번째 단어는 그룹 1을 포착하고 키워드는 시도 무엇

  • +0

    고마워요! 그게 내 문제를 해결해 줄거야. 한 가지 다른 점은 어떤 식별자가 발견되었는지 어떻게 알 수 있습니까? – ivatanako

    +0

    절대로. 그것을 얻었다 :) – ivatanako

    +0

    브래킷으로 인해 발견 된 문자열은 캡처 그룹 1에 저장된다. C#에서 'm'이 'Matcher'유형 인 경우 'm.group (1)' – stema