Ruby 中的 preg_match_all 和 preg_replace
我正在从 php 过渡到 ruby,我试图找出 ruby 中 php 命令 preg_match_all 和 preg_replace 的同源。
太感谢了!
I am transitioning from php to ruby and I am trying to figure the cognate of the php commands preg_match_all and preg_replace in ruby.
Thank you so much!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Ruby 中
preg_match_all
的等效项是String#scan
,如下所示:在 PHP 中:
和在 Ruby 中:
result
现在包含一个匹配数组。Ruby 中
preg_replace
的等效项是String#gsub
,如下所示:在 PHP 中:
和在 Ruby 中:
result
现在包含带有替换文本的新字符串。The equivalent in Ruby for
preg_match_all
isString#scan
, like so:In PHP:
and in Ruby:
result
now contains an array of matches.And the equivalent in Ruby for
preg_replace
isString#gsub
, like so:In PHP:
and in Ruby:
result
now contains the new string with the replacement text.对于 preg_replace,您可以使用 string.gsub(regexp, replacement_string)
该字符串也可以是变量,但您可能已经知道了。如果你使用gsub!原始字符串将被修改。
更多信息请访问 http://ruby-doc.org/core/classes/String。 html#M001186
对于 preg_match_all 您将使用
string.match(regexp)
这将返回一个 MatchData 对象 ( http://ruby-doc.org/core/classes/MatchData .html )。
或者您可以使用 string.scan(regexp) ,它返回一个数组(我认为这就是您正在寻找的)。
匹配: http://ruby-doc.org/core/classes/String.html #M001136
扫描:http://ruby-doc.org/core/classes/String.html#M001181
编辑:迈克的答案看起来比我的简洁得多......应该批准他的。
For preg_replace you would use
string.gsub(regexp, replacement_string)
The string can also be a variable, but you probably know that already. If you use gsub! the original string will be modified.
More information at http://ruby-doc.org/core/classes/String.html#M001186
For preg_match_all you would use
string.match(regexp)
This returns a MatchData object ( http://ruby-doc.org/core/classes/MatchData.html ).
Or you could use
string.scan(regexp)
, which returns an array (which is what you're looking for, I think).Match: http://ruby-doc.org/core/classes/String.html#M001136
Scan: http://ruby-doc.org/core/classes/String.html#M001181
EDIT: Mike's answer looks much neater than mine... Should probably approve his.
preg_match 应该接近
Should be close for preg_match