Tag: 正则表达式

正则表达式为1-31 Ruby

我试图匹配任何数字1-31(包括)。 这是我最接近的: ([1-9]|[12]\d|3[01]) 但接受324这样的数字。 那里有一个可以捕获1-31的正则表达式的机会吗?

ruby正则表达式开始方法有点混乱

m = /(.)(.)(\d+)(\d)/.match(“THX1138.”) puts m[0] c = m.captures #=> HX1138 puts c[0] #=> H puts m.begin(0) #=> 1 puts c[1] #=> X puts m.begin(1) #=> 1 puts c[2] #=> 113 puts m.begin(2) #=> 2 我期待m.begin(1)返回2,因为X是字符串开头后的两个元素。 我正在读这本书,这本书很好地基于rubyist 要获取捕获n的信息,请提供n作为开始和/或结束的参数。 同样地,我正在考虑m.begin(2)来重新演绎3。

正则表达式是什么意思?

我检查了文档,找不到[\w-]含义。 谁能告诉我[\w-]在Ruby中意味着什么?

Ruby正则表达式:负匹配

我想知道是否可以在整个单词上使用否定匹配,所以像[^(.*?)]这样的东西会匹配除 (和包括) …之间的文本之外的所有内容… 。 我正在考虑使用否定前瞻,但我认为这不会起作用,因为我还需要检查开场 。 当然,我可以使用正面正则表达式,然后从原始文本中减去匹配,但我正在寻找更“优雅”的解决方案。 thx任何帮助

什么是Ruby正则表达式以匹配函数名称?

我们的应用程序使用send方法调用对象上的函数。 不幸的是,有些时候传递给send的字符串可能不是Ru​​by中合法的方法名。 有没有人知道可以让我们检查这个的正则表达式? 合法的,我的意思是一个不以“?”开头的方法名称,等等。我不关心对象是否响应方法,因为在这种情况下我们使用method_missing ,我们实际上希望它被使用,这只会发生在对象没有响应的方法中。 从技术上讲,我正在寻找一个正则表达式: Ruby标识符由字母,十进制数字和下划线字符组成,并以字母(包括下划线)开头。 Ruby标识符的长度没有限制。

gsub中的反斜杠(转义和反向引用)

请考虑以下代码段: puts ‘hello’.gsub(/.+/, ‘\0 \\0 \\\0 \\\\0’) 这打印( 如ideone.com上所示 ): hello hello \0 \0 这是非常令人惊讶的,因为我希望看到类似的东西: hello \0 \hello \\0 我的论点是\是一个转义字符,所以你写\\得到一个字面反斜杠,因此\\0是一个字面反斜杠\后跟0 ,等等。显然这不是gsub如何解释它,所以有人可以解释这是怎么回事? 我需要做些什么来获得我想要的替代品呢?

Eval没有字符串插值的字符串

AKA如何使用正则表达式找到未转义的字符序列? 给定环境设置: @secret = “OH NO!” $secret = “OH NO!” @@secret = “OH NO!” 给定字符串从一个看起来像这样的文件读入: some_str = ‘”\”#{:NOT&&:very}\” bad. \u262E\n#@secret \\#$secret \\\\#@@secret”‘ 我想将它评估为Ruby字符串,但没有插值。 因此,结果应该是: puts safe_eval(some_str) #=> “#{:NOT&&:very}” bad. ☮ #=> #@secret #$secret \#@@secret 相比之下, eval -lyly解决方案产生 puts eval(some_str) #=> “very” bad. ☮ #=> OH NO! #$secret \OH NO! 起初我尝试过: def safe_eval(str) eval str.gsub(/#(?=[{@$])/,’\\#’) end […]

在ruby中使用.split拆分unicode(我认为)

我正在从last.fm抓取一个rss feed并且title属性看起来像是一个unicode“ – ”,它在firebug上出现了\ u2013。 这是好奇的人的饲料: http://ws.audioscrobbler.com/2.0/user/rj/recenttracks.rss 当我写这样的东西 feedentry.title.split(‘-‘) 它不会找到unicode dash。 我也试过这个: @feedsplit = feedentry.title.gsub(/\u2013/,’-‘).split(“-“) 以及使用[]范围等一些变化。 没运气。 我看了看其他答案,其中没有一个似乎适合我,所以这是我最后的希望。 谢谢你的时间!

Ruby与正则表达式分裂 – 正则表达式没有做我想要的

我有这个字符串 string = “para1para2para3” 我想分开para2文本,以便我得到这个 [“para1”, “para3”] 问题是有时para2可能不会被包装在p标签中(并且p外部和内部可能有可选空格)。 我认为这样做会: string.split(/\s*()?\s*para2\s*()?\s*/) 但是,我明白了: [“para1”, “”, “”, “para3”] 它不是将开始和结束p标记拉入匹配模式 – 它们应该作为拆分的一部分被删除。 默认情况下Ruby的正则表达式是贪婪的,所以我认为它们会被拉入。而且,如果我执行gsub而不是拆分,这似乎得到了证实: string.gsub(/\s*()?\s*para2\s*()?\s*/, “XXX”) => “para1XXXpara3” 他们被拉进来并摆脱了这里,但不是分裂。 任何人的想法? 谢谢,最大

正则表达式 – 匹配某些字符后的文字

我想从一些文本中抓取数据并将其转储到数组中。 请考虑以下文本作为示例数据: | Example Data | Title: This is a sample title | Content: This is sample content | Date: 12/21/2012 我目前正在使用以下正则表达式来刮取“冒号”字符后指定的数据: /((?=:).+)/ 不幸的是,这个正则表达式也抓住了结肠和结肠后的空间。 我如何只获取数据? 此外,我不确定我是否正确这样做..但似乎外部的parens导致匹配返回一个数组。 这是parens的function吗? 编辑:我正在使用Rubular来测试我的正则表达式