Tag: 正则表达式

什么是相当于preg_quote()的Ruby等价物?

在PHP中,您需要使用preg_quote()来转义字符串中具有正则表达式中特定含义的所有字符,以允许(例如) preg_match()搜索这些特殊字符。 以下代码在Ruby中的等价物是什么? // The content of this variable is obtained from user input, in example. $search = “$var = 100”; if (preg_match(‘/’ . preg_quote($search, ‘/’) . “;/i”)) { // … }

找出大型列表中的哪些单词出现在一个小字符串中

我有一个静态的“大”单词列表,大约300-500个单词,名为’list1′ 给出一个约40字的相对较短的字符串str ,ruby中最快的方法是: list1的单词出现在str (计算多次出现次数) list1中的哪些单词在字符串str中出现一次或多次的列表 (2)中的单词数 str ‘Occuring’既可以表示str中的整个单词,也可以表示str单词中的部分单词。 因此,如果’fred’在list1并且str包含’fred’和’freddie’ ,那将是两个匹配。 一切都是小写的,所以任何匹配都不必关心案例。 例如: list1 =”fred sam sandy jack sue bill” str = “and so sammy went with jack to see fred and freddie” 所以str包含sam , jack , fred (两次) 对于第(1)部分,表达式将返回4(sam + jack + fred + fred) 对于第(2)部分,表达式将返回“sam jack fred” 第(3)部分是3 这样做的“ruby方式”在4小时之后就消失了……迭代它很容易(但很慢)。 任何帮助,将不胜感激!

匹配字符串中连续字符的序列

我有字符串”111221″并希望匹配所有连续的相等整数集: [“111”, “22”, “1”] 。 我知道有一个特殊的正则表达式可以做到这一点,但我不记得了,我在Googling很糟糕。

在Ruby中找到多个正则表达式匹配的模式和位置

这应该是一个简单的问题,但我找不到任何关于它的信息。 给定Ruby中的正则表达式,对于每个匹配我需要检索匹配的模式$1 , $2 ,但我还需要匹配的位置。 我知道=~运算符给了我第一个匹配的位置,而string.scan(/regex/)给了我所有匹配的模式。 如果可能的话,我需要在同一步骤中得到两个结果。

给定一个URL,我怎样才能获得域名?

给定的URL如下: http://online.wsj.com/ http://online.wsj.com/article/SB10001424052970204409004577158764211274708.html http://www.techcrunch.com/2012/01/13/techcrunch-coo/ 使用Ruby / Rails,我怎样才能返回域名? online.wsj.com online.wsj.com techcrunch.com 没有协议,没有斜线,只有子域,如果它不是www ,域和ext?

我可以使用什么正则表达式从Ruby中的URL获取域名?

我正在尝试构建一个正则表达式来提取给定url的域名。 对于: http://www.abc.google.com/ http://abc.google.com/ https://www.abc.google.com/ http://abc.google.com/ 应该给: abc.google.com

将URL和@ *转换为链接

我正在收到HTTParty和Hashie的最新推文。 tweet = Hashie::Mash.new HTTParty.get(http://twitter.com/statuses/user_timeline/ethnt.json).first puts tweet.text 我希望能够将每个链接( http://*.* )和用户名( @. )转换为链接。 两者的正则表达式是什么,以及我将如何实现它?

在Ruby中提取字符串中的所有URL

我有一些文本内容,其中包含一个URL列表。 我试图抓住所有的URL并将它们放在一个数组中。 我有这个代码 content = “Here is the list of URLs: http://www.google.com http://www.google.com/index.html” urls = content.scan(/^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[az]{2,5}(([0-9]{1,5})?\/.*)?$/ix) 我试图得到最终结果: [‘http://www.google.com’, ‘http://www.google.com/index.html’] 上面的代码似乎没有正常工作。 有谁知道我做错了什么? 谢谢

在与正则表达式匹配的文本文件中查找行

任何人都可以解释我如何在Ruby中使用正则表达式只返回字符串的匹配项。 例如,如果代码读入包含一系列名称的.txt文件: John Smith James Jones David Brown Tom Davidson etc etc ..并且匹配的单词输入为’ohn’,然后它将返回’John Smith’,但没有其他名称。

在Ruby中解析街道地址

我正在将地址处理为它们各自的数据库字段格式。 我可以得到房屋号码和街道类型,但试图确定最好的方法来获得没有数字和最后一个字的街道。 收到的标准街道地址是: res[:address] = ‘7707 Foo Bar Blvd’ 截至目前,我可以解析以下内容: house = res[:address].gsub(/\D/, ”) street_type = res[:address].split(/\s+/).last 我的第一个挑战是如何获得’Foo Bar’。 请注意,街道名称可以是一个,两个或三个单词。 我正在努力为Ruby找到一个单行表达式解决方案。 我的第二个问题是如何改进“房子”代码来处理最后有alpha的门牌号码。 例如,“7707B”。 最后,如果您可以参考一个好的备忘单,其中包含有助于这些表达的示例。