Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby str[regex,number]语法_Ruby_Regex - Fatal编程技术网

Ruby str[regex,number]语法

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的该

在另一个线程中,我遇到了以下Ruby表达式:

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"]