Ruby: How to find out if a character is a letter or a digit?

前端 未结 3 686
伪装坚强ぢ
伪装坚强ぢ 2021-02-05 05:15

I just started tinkering with Ruby earlier this week and I\'ve run into something that I don\'t quite know how to code. I\'m converting a scanner that was written in Java into R

3条回答
  •  隐瞒了意图╮
    2021-02-05 05:33

    Use a regular expression that matches letters & digits:

    def letter?(lookAhead)
      lookAhead.match?(/[[:alpha:]]/)
    end
    
    def numeric?(lookAhead)
      lookAhead.match?(/[[:digit:]]/)
    end
    

    These are called POSIX bracket expressions, and the advantage of them is that unicode characters under the given category will match. For example:

    'ñ'.match?(/[A-Za-z]/)     #=> false
    'ñ'.match?(/\w/)           #=> false
    'ñ'.match?(/[[:alpha:]]/)  #=> true
    

    You can read more in Ruby’s docs for regular expressions.

提交回复
热议问题