Ruby str[regex,number]语法
在另一个线程中,我遇到了以下Ruby表达式:Ruby str[regex,number]语法,ruby,regex,Ruby,Regex,在另一个线程中,我遇到了以下Ruby表达式: str[%r{.*//(.*)}, 1] 这是什么样的语法?数字1是什么意思?它是一个带有匹配数据的正则表达式片段 基本上,它基于正则表达式索引字符串,并返回第一个匹配组。例如: str = 'http://example.com' str[%r{.*//(.*)}, 1] # => "example.com" 有这样的说法: 如果提供了Regexp,则返回str的匹配部分。如果正则表达式后面有数值或名称参数,则会返回MatchData的该
str[%r{.*//(.*)}, 1]
这是什么样的语法?数字1是什么意思?它是一个带有匹配数据的正则表达式片段
基本上,它基于正则表达式索引字符串,并返回第一个匹配组。例如:
str = 'http://example.com'
str[%r{.*//(.*)}, 1]
# => "example.com"
有这样的说法:
如果提供了Regexp,则返回str的匹配部分。如果正则表达式后面有数值或名称参数,则会返回MatchData的该组件。如果给定了一个字符串,则如果该字符串出现在str中,则返回该字符串。在这两种情况下,如果不匹配,则返回nil
这是一个带有匹配数据的正则表达式片段
基本上,它基于正则表达式索引字符串,并返回第一个匹配组。例如:
str = 'http://example.com'
str[%r{.*//(.*)}, 1]
# => "example.com"
有这样的说法:
如果提供了Regexp,则返回str的匹配部分。如果正则表达式后面有数值或名称参数,则会返回MatchData的该组件。如果给定了一个字符串,则如果该字符串出现在str中,则返回该字符串。在这两种情况下,如果不匹配,则返回nil
您可以在CodeGnome的回答中看到正则表达式切片的解释。以下是关于MatchData的一些内容:str[%r{.*/.},1]等同于str.match%r{.*/.}[1],它们的工作方式相同。[]版本更清晰、更简短 MatchData充当数组和/或散列,可以使用常规索引技术进行访问
m = /(.)(.)(\d+)(\d)/.match("THX1138.") # m is a MatchData
# and m is #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8"> in irb
m[0] # "HX1138"
m[1] # "H"
m[1..2] #["H", "X"]
您可以在CodeGnome的回答中看到正则表达式切片的解释。以下是关于MatchData的一些内容:str[%r{.*/.},1]等同于str.match%r{.*/.}[1],它们的工作方式相同。[]版本更清晰、更简短 MatchData充当数组和/或散列,可以使用常规索引技术进行访问
m = /(.)(.)(\d+)(\d)/.match("THX1138.") # m is a MatchData
# and m is #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8"> in irb
m[0] # "HX1138"
m[1] # "H"
m[1..2] #["H", "X"]