Pythonのように?文字列の各文字が英数字かどうかを確認しようとしていますか?
質問する
15803 次
4 に答える
26
これには特殊文字クラスがあります:
char.match(/^[[:alpha:]]$/)
これは、単一の英字と一致する必要があります。UTF-8でも機能するようです。
文字列全体をテストするには:
string.match(/^[[:alpha:]]+$/)
これはスペースや句読点を考慮していないことに注意してください。
于 2012-05-17T14:30:16.520 に答える
19
あなたはあなた自身を転がすことができます:)数字なしで文字だけを一致させたいなら、と置き換えalnum
てください。alpha
class String
def alpha?
!!match(/^[[:alnum:]]+$/)
end
end
'asdf234'.alpha? # => true
'asdf@#$'.alpha? # => false
于 2012-05-17T14:32:35.723 に答える
5
Python関数はASCII文字に対してのみ機能します。[[:alnum]]正規表現は「tëst」.alphaのようなことをしますか?=>真。
match/\w/
アンダースコアと一致するため、
def isalpha(str)
return false if str.empty?
!str.match(/[^A-Za-z]/)
end
Pythonの動作を再現します。
于 2012-05-17T15:11:11.620 に答える
4
正規表現を思い出せない場合(私のように!)、正規表現なしでそれを行う方法は次のとおりです。
def alpha?(char)
char.upcase != char.downcase
end
文字以外の文字の場合#upcase
、#downcase
機能しますが効果がないため、charの大文字と小文字の値は文字であると判断するのに等しくないと断言できます。
于 2020-03-16T18:28:36.883 に答える