首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用正则表达式从Ruby中的字符串中提取子字符串

使用正则表达式从Ruby中的字符串中提取子字符串
EN

Stack Overflow用户
提问于 2010-11-07 04:54:46
回答 6查看 160.4K关注 0票数 142

如何从Ruby中的字符串中提取一个子字符串?

示例:

代码语言:javascript
复制
String1 = "<name> <substring>"

我想从String1中提取substring (即最后一次出现的<>中的所有内容)。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-11-07 04:58:12

代码语言:javascript
复制
String1.scan(/<([^>]*)>/).last.first

scan创建一个数组,对于String1中的每个<item>,该数组在一个元素数组中包含<>之间的文本(因为当与包含捕获组的正则表达式一起使用时,scan会创建一个包含每个匹配的捕获的数组)。last会给出最后一个数组,然后first会给出其中的字符串。

票数 147
EN

Stack Overflow用户

发布于 2010-11-07 05:00:26

代码语言:javascript
复制
"<name> <substring>"[/.*<([^>]*)/,1]
=> "substring"

如果我们只需要一个结果,就不需要使用scan

当我们有Ruby的String[regexp,#]时,不需要使用Python的match

请参阅:http://ruby-doc.org/core/String.html#method-i-5B-5D

注:str[regexp, capture] → new_str or nil

票数 339
EN

Stack Overflow用户

发布于 2010-11-07 04:59:20

您可以使用正则表达式来实现非常简单的…

允许单词周围有空格(但不保留空格):

代码语言:javascript
复制
str.match(/< ?([^>]+) ?>\Z/)[1]

或者不使用允许的空格:

代码语言:javascript
复制
str.match(/<([^>]+)>\Z/)[1]
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4115115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档