我需要发现字符串的第一个元素是否为char。 示例:
string_1 = "Smith has 30 years" -----> TRUE (first element is a character)
string_2 = "20/12/2013 Good Day" -----> FALSE (first element is not a character)
string_3 = "<My name is John>" -----> FALSE (first element is not a character)
使用&#34; .initial&#34;我能够访问每个字符串的第一个元素,但后来我不知道要进行测试
答案 0 :(得分:1)
如果你的意思是检查字符串中的第一个元素是否是字母,你可以这样做:
string[0].match(/[a-zA-Z]/)
或者,正如Arup Rakshit建议的那样,您可以在正则表达式中使用i
选项来忽略大小写:
string[0].match(/[a-z]/i)
如果测试的字符串以字母开头,则这些行将返回MatchData
,如果不是,则返回nil
。如果您想要true
和false
值,则可以执行以下操作:
!!string[0].match(/[a-z]/i)
答案 1 :(得分:1)
您可以执行以下操作:
string[/\A[a-z]/i]
看看这个 - str[regexp] → new_str or nil
在Ruby nil
和false
对象中被视为具有 falsy 值。
或使用Regexp#===
,如下所示:
irb(main):001:0> /\A[a-z]/i === 'aaa'
=> true
irb(main):002:0> /\A[a-z]/i === '2aa'
=> false
答案 2 :(得分:1)
检测初始字符是否为字母(字母或下划线;不是字符)。
string =~ /\A\w/
答案 3 :(得分:0)
你可以这样做: -
regex = /[a-zA-Z]/
str[0][regex]
#=> either a letter or nil
str[0][regex].kind_of?(String)
#=> true if first letter matches the regex or false if match return nil.
答案 4 :(得分:0)
试试吧,
2.0.0-p247 :042 > /^[a-zA-Z]/ === 'Smith has 30 \n years'
=> true
OR
2.0.0-p247 :042 > /\A[a-zA-Z]/ === "Smith has \n 30 years"
=> true
2.0.0-p247 :042 > /^[a-zA-Z]/ === '20/12/2013 \n Good Day'
=> false
OR
2.0.0-p247 :042 > /\A[a-zA-Z]/ === "20/12/2013 \n Good Day"
=> false
2.0.0-p247 :042 > /^[a-zA-Z]/ === '<My name is \n John>'
=> false
OR
2.0.0-p247 :042 > /\A[a-zA-Z]/ === "<My name \n is John>"
=> false