本文简要介绍ruby语言中 Regexp.rxp =~ str
的用法。
用法
rxp =~ str → integer or nil
匹配 - 将 rxp
与 str
匹配。
/at/ =~ "input data" #=> 7
/ax/ =~ "input data" #=> nil
如果 =~
与带有命名捕获的正则表达式文字一起使用,则捕获的字符串(或 nil)将分配给由捕获名称命名的局部变量。
/(?<lhs>\w+)\s*=\s*(?<rhs>\w+)/ =~ " x = y "
p lhs #=> "x"
p rhs #=> "y"
如果不匹配,则为变量分配 nil。
/(?<lhs>\w+)\s*=\s*(?<rhs>\w+)/ =~ " x = "
p lhs #=> nil
p rhs #=> nil
这个赋值是在 Ruby 解析器中实现的。解析器检测到分配的“regexp-literal =~ 表达式”。正则表达式必须是没有插值的文字并放置在左侧。
如果正则表达式不是文字,则不会发生赋值。
re = /(?<lhs>\w+)\s*=\s*(?<rhs>\w+)/
re =~ " x = y "
p lhs # undefined local variable
p rhs # undefined local variable
正则表达式插值 #{}
也会禁用分配。
rhs_pat = /(?<rhs>\w+)/
/(?<lhs>\w+)\s*=\s*#{rhs_pat}/ =~ "x = y"
p lhs # undefined local variable
如果将正则表达式放在右侧,则不会发生赋值。
" x = y " =~ /(?<lhs>\w+)\s*=\s*(?<rhs>\w+)/
p lhs, rhs # undefined local variable
相关用法
- Ruby Regexp.rxp ===用法及代码示例
- Ruby Regexp.rxp ==用法及代码示例
- Ruby Regexp.eql?用法及代码示例
- Ruby Regexp.fixed_encoding?用法及代码示例
- Ruby Regexp.options用法及代码示例
- Ruby Regexp.inspect用法及代码示例
- Ruby Regexp.names用法及代码示例
- Ruby Regexp.escape用法及代码示例
- Ruby Regexp.casefold?用法及代码示例
- Ruby Regexp.match用法及代码示例
- Ruby Regexp.try_convert用法及代码示例
- Ruby Regexp.match?用法及代码示例
- Ruby Regexp.union用法及代码示例
- Ruby Regexp.source用法及代码示例
- Ruby Regexp.new用法及代码示例
- Ruby Regexp.named_captures用法及代码示例
- Ruby Regexp.~ rxp用法及代码示例
- Ruby Regexp.last_match用法及代码示例
- Ruby Regexp.to_s用法及代码示例
- Ruby Regexp named_captures()用法及代码示例
- Ruby Regexp to_s()用法及代码示例
- Ruby Regexp hash()用法及代码示例
- Ruby Regexp类用法及代码示例
- Ruby Regexp inspect()用法及代码示例
- Ruby Regexp source()用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Regexp.rxp =~ str。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。