Tag: 正则表达式

Ruby Regexp:单个正则表达式与new和union之间的区别

我简化了这些例子。 假设我有一个包含正则表达式代码的字符串。 我希望正则表达式匹配一个文字点,因此我希望它是: \. 所以我创建了以下Ruby字符串: “\\.” 但是,当我与Regexp.union一起使用它来创建我的正则表达式时,我得到了这个: irb(main):017:0> Regexp.union(“\\.”) => /\\\./ 这将匹配斜线后跟一个点,而不只是一个点。 将之前的结果与此进行比较: irb(main):018:0> Regexp.new(“\\.”) => /\./ 这给了我想要的Regexp但没有所需的联合。 你能解释一下Ruby为什么会这样做以及如何正确结合正则表达式? 利用的上下文是导入描述正则表达式的JSON字符串并在Ruby中将它们联合起来。

Ruby正则表达式 – gsub只捕获组

我不太清楚我是否理解非捕获组的工作原理。 我正在寻找一个正则表达式来产生这个结果: 5.214 。 我认为下面的正则表达式可行,但它正在取代包括非捕获组在内的所有内容。 如何编写正则表达式才能替换捕获组? “5,214”.gsub(/(?:\d)(,)(?:\d)/, ‘.’) # => “.14” 我想要的结果: “5,214”.gsub(some_regex) #=> “5.214

是否可以在Ruby中创建动态正则表达式

我正在使用以下正则表达式来在网页上进行hrefs游行。 \/static\/workout\/[AZ]{1,4}032812[AZ]{1,5}-EQB.html 我想找到一种方法使正则表达式的032812部分动态化,这样该值将反映当前日期。 例如,2012年3月31日,正则表达式如下所示: \/static\/workout\/[AZ]{1,4}033112[AZ]{1,5}-EQB.html 我尝试创建一个字符串 a = \/static\/workout\/[AZ]{1,4}033112[AZ]{1,5}-EQB.html 然后 \ a \ 但这没用。 有没有办法做到这一点。

Ruby:从字符串生成新的Regexps

有没有办法将String转换为Regexp(在Ruby中)? 让我们说: ‘example’ —> /example/ 我的目的是动态生成Regexps。

如何使用Ruby中的正则表达式从文本中提取地址

我试图从文本中提取美国地址。 因此,如果我有以下文本变体,那么我想提取地址部分 今天是在酒吧见面的好日子。 地址是123 fake street,NY,23423-3423 just came from 423 Elm Street, kk, 34223 …had awesome time blah blah bleh blah 23414假露台,MM别的东西 experimented my teleporter to get to work but reached at 2423 terrace NY 如果有人可以提供一些起点,那么我可以根据其他变化进行塑造。

Ruby中单引号到双引号的智能转换

问题 在源文件中,我有大量的strings.ome有插值,有些有特殊符号,有些没有。 我试图解决,如果我可以用双引号替换单引号,同时转换转义的单引号字符。 然后我会在一个或多个源代码文件上运行此转换。 示例 – 代码 想象一下以下代码: def myfunc(var, var2 = ‘abc’) s = ‘something’ puts ‘a simple string’ puts ‘string with an escaped quote \’ in it’ x = “nasty #{interpolated}” + s + ‘ and single quote combo’ puts “my #{var}” end 示例 – 结果 我想把它变成这样: def myfunc(var, var2 = “abc”) s […]

Ruby用逗号分隔吸收尾随空格

我需要将一个字符串拆分为两个变量。 例如,以下方法可以正常工作: first,second = “red,blue”.split(‘,’) 我想分割用户输入,可能在逗号后面有一个可选空格。 如何在逗号被吸收后写入空格? 我需要正确处理所有这些可能性: “red,blue” # first=”red” second=”blue” “red, blue” # first=”red” second=”blue” “red,dark blue” # first=”red” second=”dark blue” “red, light blue” # first=”red” second=”light blue”

在ruby / rails中的html块中提取电子邮件地址

我正在创建一个解析器来防止来自tinyMCE的文本块中的垃圾邮件和收集电子邮件(所以它可能有也可能没有html标签) 我已经尝试了正则表达式,到目前为止这已成功: /\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[AZ]{2,4}\b/i 问题是,我需要忽略mailto hrefs的所有电子邮件地址。 例如: test@mail.com 应该只返回第二封电子邮件添加。 为了获得我正在做的事情的背景,我正在反转块中的电子邮件地址,所以上面的例子看起来像这样: moc.liam@tset 我目前的正则表达式的问题是它也取代了href中的那个。 有没有办法让我用一个正则表达式做到这一点? 或者我必须检查一个然后另一个? 有没有办法让我这样做只是通过使用gsub或我必须使用一些nokogiri / hpricot magicks和什么来解析mailtos? 提前致谢! 这是我的参考btw: so.com/questions/504860/extract-email-addresses-from-a-block-of-text so.com/questions/1376149/regexp-for-extracting-a-mailto-address 我也用这个测试: http://rubular.com/ 编辑 这是我目前的帮助代码: def email_obfuscator(text) text.gsub(/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[AZ]{2,4}\b/i) { |m| m = “#{m.reverse}” } end 结果如下: <a target="_self" href="mailto:moc.liamg@tset”>moc.liamg@tset

Ruby regexp:捕获url的路径

从我想要提取其路径的任何URL。 例如: url: https : //stackoverflow.com/questions/ask路径:问题/问题 这应该不难: url[/(?:\w{2,}\/).+/] 但我认为我使用错误的模式’忽略这个’(’?:’ – 不起作用)。 什么是正确的方法?

在替换中修改正则表达式匹配

我正在尝试使用正则表达式匹配文本文件中的某些字符串,然后修改找到该模式的所有位置。 这就像搜索和替换,但我试图用已发现的修改版本替换(我确定这有一个名字,但我对它不够熟悉)。 所以我正在寻找与[az]_[az]匹配的字符串(例如, some_string ),我想通过删除下划线并将第二个小some_string词大写来替换它,基本上是camel-casing it( someString )。 关于如何做到这一点的任何指针(棘手的部分是我真的不知道如何甚至谷歌为此)。 编辑 我试图简化这个问题以使其更通用,但我也试图仅在引号中没有匹配的情况下这样做。 也就是说,我不想在引号中匹配下划线(所以,这里不匹配: “this_is_a_string” ……应保持原样)。 当我第一次发帖时,我可能应该包括这个。