영문자와 만 일치하는 정규식


157

알파벳 문자 만있는 문자열과 일치하는 정규식을 얻을 수 있는지 궁금합니다.


2
/ ^ [a-zA-Z] + $ /와 같은 것이 작동해야합니다.
Julian Go

10
à알파벳 문자는 정의에 따라? 어떤 언어를 사용하고 있습니까?
Tim Pietzcker

2
빈 문자열이 일치해야합니까?
ysth

아니 빈 문자열이 일치하지합니다
스테판 해리스

한 가지 중요한 참고 사항 : 당신이 요구하는 정규 표현식을 사용하기를 원하는 언어 나 도구를 언급하지 않았습니다. 정규 표현식의 원칙은 보편적으로 동일하지만 구문이 모든 곳에서 동일하지는 않습니다. 사용하고자하는 곳을 참조해야합니다.
sergiol

답변:


186

다음 2 가지 변형 중 하나를 사용할 수 있습니다.

/^[A-Z]+$/i
/^[A-Za-z]+$/

ASCII 알파벳의 입력 문자열과 일치시킵니다.

  • [A-Za-z] 모든 알파벳과 일치합니다 (소문자와 대문자 모두).
  • ^그리고 $확실히 아무 것도하지 않습니다하지만이 알파벳이 일치됩니다.

암호:

preg_match('/^[A-Z]+$/i', "abcAbc^Xyz", $m);
var_dump($m);

산출:

array(0) {
}

테스트 사례 는 입력에 하나 이상의 알파벳이있는 경우에만 일치시키려는 OP의 의견입니다 . 테스트 사례에서 알 수 있듯이 ^입력 문자열이 있으므로 일치하지 않습니다 abcAbc^Xyz.

참고 : 위의 답변 은 ASCII 알파벳만 일치 하며 유니 코드 문자와는 일치하지 않습니다. 유니 코드 문자를 일치 시키려면 다음을 사용하십시오.

/^\p{L}+$/u

여기, \p{L}모든 언어의 모든 종류의 문자와 일치


22
일부 방언에서 [Az]는 'Z'와 'a'사이에서 발생하는 ASCII 문장 부호 값, 특히 '[', '\', ']', '^', '-'및 '`'과 일치합니다. 'A'부터 'Z'까지 그리고 'a'부터 'z'까지.
Lee

내가 정말로 원하는 것은 알파벳 문자가있을 때만 문자열을 일치시키는 방법입니다. 알파벳 문자가 아닌 경우 일치하지 않아야합니다.
Steffan Harris

7
@ 리 : 아니에요. 그들 모두. 이 정규식은 현재 상태에서 잘못되었습니다.
Tim Pietzcker

7
\w is shorthand for A-Za-z-실제로는, \w속기입니다[a-zA-Z0-9_]
anubhava

1
좋은 지적 @ jpmc26. 원래 실수를 제거하기 위해 답변을 편집했습니다.
anubhava

55

ASCII가 아닌 알파벳 문자를 포함해야하고 정규 표현식이 유니 코드를 지원하는 경우

\A\pL+\z

올바른 정규식이 될 것입니다.

일부 정규식 엔진은이 유니 코드 구문을 지원하지 않지만 \w영숫자 속기는 ASCII가 아닌 문자와도 일치시킬 수 있습니다. 이 경우 다음과 \w같이 숫자와 밑줄을 빼서 모든 알파벳을 얻을 수 있습니다 .

\A[^\W\d_]+\z

\A문자열의 시작 부분, 문자열 \z의 끝 부분 ^$일치 합니다 ( 또한 Ruby와 같은 일부 언어의 줄 시작 / 끝 부분 또는 특정 정규식 옵션이 설정된 경우).


38
영어 알파벳을 유일한 알파벳으로 간주하지 않은 경우 +1
srcspider

7
+1, 위와 동일 영어가 유일한 알파벳은 아니며 많은 사람들이 ASCII가 아닌 문자를 사용하여 올바르게 표현하기 위해 이름을 씁니다.
Ben Barkay

22

하나 이상의 알파벳 문자와 일치합니다.

/^[a-z]+$/

다음을 사용하여 대소 문자를 구분하지 않을 수 있습니다.

/^[a-z]+$/i

또는:

/^[a-zA-Z]+$/

라틴 문자 만 일치합니다.
인용구 Bro

13

대괄호 표현식에서 POSIX 문자 클래스를 지원하는 Ruby 및 기타 언어에서 간단하게 수행 할 수 있습니다.

/\A[[:alpha:]]+\z/i

모든 유니 코드 알파벳 언어의 알파 문자와 일치합니다. 쉬워요.

추가 정보 : http://en.wikipedia.org/wiki/Regular_expression#Character_classes http://ruby-doc.org/core-2.0/Regexp.html


1
그리고 문서화되지 않은 문자를 제외한 모든 것을 얻으려면을 사용하십시오 [^[:alpha]].
spyle

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.