2017-09-27 6 views
2

콜론으로 끝나는 대문자 문자열과 일치 시키려면 RegEx가 필요합니다. 문자열에는 공백, 숫자 및 마침표가 포함될 수 있습니다. 경우 있도록 :대문자 단어 뒤에 콜론이 오는 것을 찾으려면

mystring = "I have a C. GRAY CAT2:" 

나는 ColdFusion 표현식을 원하는

REFind("[A-Z0-9. ][:]",mystring) 

일치하는 숫자 9, 돌아갑니다 "C. GRAY CAT2을". 대신 콜론 만 일치하는 숫자 21을 반환합니다. 정규 표현식을 수정하면 문제가 해결되기를 바랍니다. 물론 나는 많은 것을 시도해 왔습니다. 감사합니다.

+1

아마도 [[A-Z] [A-Z0-9. ] * :'. –

답변

2

나는 regex demo

세부

  • [A-Z0-9] 참조

    [A-Z0-9][A-Z0-9. ]*: 
    

    사용하는 것이 좋습니다 - 첫번째 문자는 다른, 숫자가 될 제거 할 수있는 경우 대문자 또는 숫자를 (0-9)

  • [A-Z0-9. ]* - 0 이상의 대문자/숫자, . 또는 공백
  • : - 콜론.

변화

는 문자열처럼 345: 일치하지 않도록하지만 여전히 것과 같은 23 VAL:을 허용, this regex demo를 참조

\b(?=[0-9. ]*[A-Z])[A-Z0-9][A-Z0-9. ]*: 

사용합니다. 여기에서 \b(?=[0-9. ]*[A-Z])은 먼저 단어 경계와 일치하고 긍정적 인 미리보기 (?=[0-9. ]*[A-Z])은 0 자 이상의 숫자, 공백 또는 점 뒤에 대문자가 있는지 확인합니다. 당신이 순서의 시작 번호를 기대하지 않는 경우

, 즉 I have a 22 C. GRAY CAT2:에서, 당신은 C. GRAY CAT2을 추출 Sebastian's suggestion (demo)를 사용합니다.

+0

고마워, 위크 토어. Sebastian의 제안은 또한 문자열의 시작 부분에 "I"를 추출했습니다. 일치하는 문자열에 소문자 "have a"가 포함되어 있었기 때문에 필자가 필요로하지 않는 것은 "I"입니다. – Commata

+0

죄송 합니다만 답변이 시작될 때 약간의 문자열이있어서 끝나지 않았습니다. 혼란을 피하기 위해 삭제되었습니다. –

+0

Wiktor (at) : 아직 원래 제안을 사용하고 있지만 내 출처에서 128-255의 문자를 사용하는 경우가 있으므로 MÜNCHEN : 내 소스에 M œNCHEN으로 표시됩니다. RegEx와 NCHEN이 일치합니다. RegEx가 대문자 인 것처럼 특수 문자를 처리하여 "특수 문자"가 포함 된 전체 문자열과 일치시킬 수 있습니까? – Commata

0

독일어 특수 문자를 다루기 위해 선택한 대답을 내 질문에 맞게 수정했습니다.

이 일 것으로 보인다
[A-Z][A-Z0-9.ÜÄÖß ]*: 

그러나 독일은 최근 아직 때문에 잠시 동안 정규식에 대한 문제가되지 않습니다 대부분의 키보드에 확실하지 않습니다 자신의 알파벳에 자본 ß을 추가했습니다.