有人知道有效Ruby变量名的规则吗?它能用RegEx进行匹配吗?
更新:--到目前为止,我可以这样做:
^[_a-z][a-zA-Z0-9_]+$这看上去对吗?
发布于 2010-09-06 01:40:24
标识符非常简单。它们以字母或下划线开头,并包含字母、下划线和数字。局部变量不能(或者不应该?)从大写字母开始,这样您就可以使用这样的正则表达式了。
/^[a-z_][a-zA-Z_0-9]*$/发布于 2010-09-08 14:06:38
变量名有可能是unicode字母,在这种情况下,大多数现有的regexe不匹配。
varname = "\u2211" # => "∑"
eval(varname + '= "Tony the Pony"') => "Tony the Pony"
puts varname # => ∑
local_variable_identifier = /Insert large regular expression here/
varname =~ local_variable_identifier # => nil还请参阅Ruby1.9镐或玩Unicode中的“使用Unicode的乐趣”。
发布于 2010-09-06 01:43:09
根据names.html,Ruby变量包括:
名称是大写字母、小写字母或下划线("_"),后面跟着名称字符(这是大小写字母、下划线和数字的任何组合)。
此外,全局变量以美元符号开头,实例变量以单个符号开头,类变量以两个符号开头。
与以下所有内容匹配的正则表达式:
%r{
(\$|@{1,2})? # optional leading punctuation
[A-Za-z_] # at least one upper case, lower case, or underscore
[A-Za-z0-9_]* # optional characters (including digits)
}x希望这能有所帮助。
https://stackoverflow.com/questions/3648551
复制相似问题