알파벳 문자 만있는 문자열과 일치하는 정규식을 얻을 수 있는지 궁금합니다.
à
알파벳 문자는 정의에 따라? 어떤 언어를 사용하고 있습니까?
알파벳 문자 만있는 문자열과 일치하는 정규식을 얻을 수 있는지 궁금합니다.
à
알파벳 문자는 정의에 따라? 어떤 언어를 사용하고 있습니까?
답변:
다음 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}
모든 언어의 모든 종류의 문자와 일치
\w is shorthand for A-Za-z
-실제로는, \w
속기입니다[a-zA-Z0-9_]
ASCII가 아닌 알파벳 문자를 포함해야하고 정규 표현식이 유니 코드를 지원하는 경우
\A\pL+\z
올바른 정규식이 될 것입니다.
일부 정규식 엔진은이 유니 코드 구문을 지원하지 않지만 \w
영숫자 속기는 ASCII가 아닌 문자와도 일치시킬 수 있습니다. 이 경우 다음과 \w
같이 숫자와 밑줄을 빼서 모든 알파벳을 얻을 수 있습니다 .
\A[^\W\d_]+\z
\A
문자열의 시작 부분, 문자열 \z
의 끝 부분 ^
과 $
일치 합니다 ( 또한 Ruby와 같은 일부 언어의 줄 시작 / 끝 부분 또는 특정 정규식 옵션이 설정된 경우).
대괄호 표현식에서 POSIX 문자 클래스를 지원하는 Ruby 및 기타 언어에서 간단하게 수행 할 수 있습니다.
/\A[[:alpha:]]+\z/i
모든 유니 코드 알파벳 언어의 알파 문자와 일치합니다. 쉬워요.
추가 정보 : http://en.wikipedia.org/wiki/Regular_expression#Character_classes http://ruby-doc.org/core-2.0/Regexp.html
[^[:alpha]]
.