2010-12-06 4 views
2

다음 조건과 일치하는 단어 만 일치 시키려면 정규 표현식이 필요합니다. 나는C#에서 간단한 단어와 일치하는 정규식?

  1. 는 어떤 경우 일 수 있습니다 내 C# 프로그램에서 사용하고
  2. 어떤
  3. 이 포함될 수 있습니다 숫자가 안 -와 '문자를하지만,
  4. 은 문자로 시작해야 선택 사항

표현식 ^([a-zA-Z][\'\-]?)+$을 사용해 보았지만 작동하지 않습니다. 여기

  1. 런던 (대소 문자 구분)
  2. 잭슨의
  3. 비영리 여기

가 아닌 몇 단어의 목록이 허용 몇 단어의 목록입니다 허용 가능

  1. 12london (contains
+0

그리고 당신은 'touch'또는 'naïve'와 같은 단어를 일치시키고 싶지 않습니까? –

답변

2
)와 '허용되지 않습니다 - 문자, 다른 어떤 특수 문자를 (포함 : 숫자와 알파벳으로 시작되지 않습니다)
  • -to은 (에
  • )은 문자로 시작하지 않는
    ^[a-zA-Z][-'a-zA-Z]*$ 
    

    알파벳 문자로 시작하고 그 뒤에 임의의 수의 알파벳 문자 - 또는 '가 오는 단어와 일치합니다.

    대시가 시퀀스의 첫 번째 문자 또는 마지막 문자 인 경우 character [] class 안에있는 경우 - 및 '를 이스케이프 할 필요가 없습니다.

    예에서 둥근 괄호를 제거 했으니 참고하십시오. capture the input을 사용하지 않으려는 경우에는 더 나은 성능을 얻을 수 있습니다.

  • +0

    는 편집, @Jim (또는 적어도 내가 ... 그것은 당신을 치기에 매우 근접했다) – Dexter

    +0

    1로 이길하지만 영업 이익은 개인이 아닌 단어, 텍스트 작업이 정규식을 필요로 가정합니다. 이 정규식은 비영리 부문에서 잭슨의 작업이있어 ​​런던에서 *에서 아무것도 찾을 수없는 * –

    +0

    @Lieven가 -. 영업 이익은 ^와 $을 포함, 그래서 영업 이익은 암호 나 같은 하나의 단어 문을 테스트 한 것으로 가정 비슷한. 일부 수정 – Dexter

    2

    이것보십시오 : 같은 당신은 둘 다 시작하고 패턴으로 끝나는 문자열을 테스트 http://www.regextester.com/

    같은 도구에 대한 귀하의 정규 표현식에 시도, 모두의

    ^[A-Za-z]+[A-Za-z'-]*$ 
    
    +0

    정말 – Vamsi

    1

    먼저 (^ 라인의 시작을 의미한다 , $는 끝이다), 두 공간 사이에 포함 된 모든 단어를 제외한다.
    \ b 또는 \ B를 사용해야합니다.
    [a-zA-Z] 대신 '\ D'(숫자가 아님)와 같은 문자 클래스를 사용할 수 있습니다.
    위 시나리오가 귀하의 시나리오에서 작동하는지 알려주십시오.

    \b\D[^\c][a-zA-Z]+[^\c] 
    

    단어가없고 제어 문자가 없으며 하나 이상의 알파벳 소문자 또는 대문자가 있으며 제어 문자가 없습니다.

    +0

    이 답장을 보내 주셔서 감사합니다 도움이 당신을 감사 만족하지 않는 텍스트에서 해당 단어를 추출하는 방법에 대한 호기심,하지만 난 더 나은하지만 모든되었다 실제로 단어는 필수 형식으로되어 있는지 확인하거나, 내가 텍스트에 사용하지하고 있지만 개별 단어, 단어 사이에 공백이 없습니다이 정규 표현식을 사용. – Vamsi