如何检查Ruby中是否只包含空格和字母?

时间:2015-08-23 10:01:07

标签: ruby regex

如何检查字符串是否只包含空格和字母?

我不确定如何在我的代码中实现它。目前我有

phrase.match(/[[:alpha:]]+[[:blank:]]/)

如果短语只包含字母和空格,我认为会返回true,但这不起作用。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

只需组合两个char类。这里非常需要锚点。

phrase.match(/^[[:alpha:][:blank:]]+$/)

仅当输入字符串包含字母或空格时才会找到匹配项。

DEMO

答案 1 :(得分:0)

使用否定匹配。

phrase !~ /[^[:alpha:][:blank:]]/

答案 2 :(得分:0)

Avinash Raj提供了几乎正确的答案,所以我只是建立起来。

只需组合两个char类。这里非常需要锚点。

phrase.match(/\A[[:alpha:][:blank:]]+\z/)

示例:

"ds ds sd ds".match(/\A[[:alpha:][:blank:]]+\z/)
=> #<MatchData "ds ds sd ds">

"dad56".match(/\A[[:alpha:][:blank:]]+\z/)
=> nil

"sdfd Ajds".match(/\A[[:alpha:][:blank:]]+\z/)
=> #<MatchData "sdfd Ajds">

"sdfd Ajds".match(/\A[[:alpha:][:blank:]]+\z/)
=> #<MatchData "sdfd Ajds">

"hghds /*".match(/\A[[:alpha:][:blank:]]+\z/)
=> nil

"abcd def SURPRISE".match(/\A[[:alpha:][:blank:]]+\z/)
=> #<MatchData "abcd def SURPRISE">

"abcd def\nSURPRISE".match(/\A[[:alpha:][:blank:]]+\z/)
=> nil