Regular Expression to Match Only Alphabetic Characters
I Was Wondering If I Could Get a Regular Expression Which Will Match a String That Only Has Alphabetic Characters, and That Alone. 6 5 Answers You May Use Any...
I was wondering If I could get a regular expression which will match a string that only has alphabetic characters, and that alone.
5 Answers
You may use any of these 2 variants:
/^[A-Z]+$/i
/^[A-Za-z]+$/
to match an input string of ASCII alphabets.
[A-Za-z]will match all the alphabets (both lowercase and uppercase).^and$will make sure that nothing but these alphabets will be matched.
Code:
preg_match('/^[A-Z]+$/i', "abcAbc^Xyz", $m);
var_dump($m);
Output:
array(0) {
}
Test case is for OP's comment that he wants to match only if there are 1 or more alphabets present in the input. As you can see in the test case that matches failed because there was ^ in the input string abcAbc^Xyz.
Note: Please note that the above answer only matches ASCII alphabets and doesn't match Unicode characters. If you want to match Unicode letters then use:
/^\p{L}+$/u
Here, \p{L} matches any kind of letter from any language
If you need to include non-ASCII alphabetic characters, and if your regex flavor supports Unicode, then
\A\pL+\z
would be the correct regex.
Some regex engines don't support this Unicode syntax but allow the \w alphanumeric shorthand to also match non-ASCII characters. In that case, you can get all alphabetics by subtracting digits and underscores from \w like this:
\A[^\W\d_]+\z
\A matches at the start of the string, \z at the end of the string (^ and $ also match at the start/end of lines in some languages like Ruby, or if certain regex options are set).
This will match one or more alphabetical characters:
/^[a-z]+$/
You can make it case insensitive using:
/^[a-z]+$/i
or:
/^[a-zA-Z]+$/
In Ruby and other languages that support POSIX character classes in bracket expressions, you can do simply:
/\A[[:alpha:]]+\z/i
That will match alpha-chars in all Unicode alphabet languages. Easy peasy.
More info:
[a-zA-Z] should do that just fine.
You can reference the cheat sheet.