草庐IT

REGEX_EXTRACT

全部标签

ruby - VIM Ruby Regex 语法用引号高亮显示

我想知道当Regex中有引号时,我可以做些什么来修复RubyRegex语法高亮显示?问题出在这里:并将其与没有引号的类似内容进行比较:(我已经在使用最新的vim-ruby插件)。 最佳答案 实际上,您的vim设置(或者可能是vim的过时版本)似乎存在一些问题——对我来说一切正常。我为Debian打包了vim7.3.346。标准ruby​​语法文件和来自vim-ruby的语法文件两者都做的工作。如果更新不是一个选项或没有帮助,请附上:syntax和:script命令的输出。这是ahint如何简化流程。

ruby - 如何使用 Regex 匹配前面没有 "="的单词?

我想从Ruby中的Fortran代码中提取符号。这些符号将具有以下模式(注意:变量类型和属性部分已被过滤掉):a=b,c(2)!Matchresultshouldbe"a"and"c"d(3)=[1,2,&!Matchresultshouldbe"d"3]我试过的正则表达式是((?与lookaround东西。但是由于lookbehind的限制,我无法匹配"=*"来排除b.我使用Rubular进行测试。为方便起见,请参阅here.提前致谢! 最佳答案 为了使您的正则表达式工作,您可以先替换=之后的所有尾随空格.gsub(/=\s+/,

ruby - URI Extract 在冒号处转义,有什么办法可以避免这种情况?

我在下面有以下函数,通常会吐出一个URL,例如path.com/p/12345。有时,当一条推文在推文前包含一个冒号时,例如RT:Somethingpath.com/p/123函数将返回:personName:path.com/p/12345我的功能:$a=10defgrabTweets()tweet=Twitter.search("[pic]"+"path.com/p/",:rpp=>$a,:result_type=>"recent").mapdo|status|tweet="#{status.text}"#class=stringurls=URI::extract(tweet)#r

ruby 心印 : regex parentheses "capture" matched content?

我正在浏览about_regular_expressions.rb并且不明白这里到底发生了什么:deftest_variables_can_also_be_used_to_access_capturesassert_equal"Gray,James","Name:Gray,James"[/(\w+),(\w+)/]assert_equal"Gray",$1assert_equal"James",$2end在我看来,似乎在正则表达式中使用括号会在幕后创建两个新变量($1和$2)。这是正确的吗?但后来我这样做了:deftest_variables_can_also_be_used_to_a

regex - 提取 ruby 中单引号之间的日期

我有这样一个字符串:ticket:1priority:5delay:'2019-08-3102:53:27.720422'delay:'2019-08-3000:04:10.681242'我成功提取了ticket和priority但在delay上失败了。我想要的是将延迟提取为数组,因此输出将如下所示:#delays=>["delay:'2019-08-3102:53:27.720422'","delay:'2019-08-3000:04:10.681242'"]到目前为止我尝试了什么?str="ticket:1priority:5delay:'2019-08-3102:53:27.72

ruby - 在字符串上使用 Ruby,如何使用 RegEx 在字符串的两个部分之间进行切片?

我只想将字符串中两个特定点之间的文本保存到一个变量中。文本看起来像这样:..."content"=>"ThetextIwanttosavetoavariable"}]...我想我必须使用扫描或切片,但不确定如何在不获取文本前后的RegEx标识符的情况下仅提取文本。我试过了,但没用:var=mystring.slice(/\"content\"\=\>\".\"/) 最佳答案 这应该可以完成工作var=mystring[/"content"=>"(.*)"/,1]注意:.slice别名[]您转义的字符都不是您使用的特殊正则表达式字符您

regex - 允许 A-Za-z0-9 的 Ruby 正则表达式

我有以下正则表达式:/([A-Za-z0-9]+)([A-Za-z0-9\-\_]+)([A-Za-z0-9]+)/它不符合我的需要,它们是:不允许有空格允许大写英文字母允许小写英文字母允许数字字符串不能同时包含连字符和下划线连字符:连字符不能在字符串的开头或结尾;可以有任意数量的连字符,但连续只能有1个连字符(a--b无效)。下划线:下划线不能在字符串的开头或结尾;可以有任意数量的下划线,但连续只能有1个下划线(a__b无效)字符串必须至少包含1个字符(字母)有效示例:a1_b_2_hello2b-ffg-er2abs123a无效示例:_a1_b_2_hello2b-ffg_er2-

regex - 如何使用 Regexp.union 构建不区分大小写的正则表达式

我有一个字符串列表,需要使用Regexp#union从它们构建正则表达式.我需要生成的模式不区分大小写。#union方法本身不接受选项/修饰符,因此我目前看到两个选项:strings=%w|onetwothree|Regexp.new(Regexp.union(strings).to_s,true)和/或:Regexp.union(*strings.map{|s|/#{s}/i})两种变体看起来都有点奇怪。是否可以使用Regexp.union构造不区分大小写的正则表达式? 最佳答案 简单的起点是:words=%w[onetwothr

Ruby 正则表达式 (regex) : character appear only once at most

假设我想确保一个字符串x等于abcd的任意组合(每个字符出现一次或零次-->每个字符不应重复,但该组合可以以任何顺序出现)有效的例子:bc..abcd...bcad...b...d..dc无效的例子。abcdd、cc、bbbb、abcde(当然)我的努力:我尝试了各种技术:我最接近的是x=~^(((a)?(b)?(c)?(d)?))$但是如果我不按照我写的顺序输入它们,这将无法工作:适用于:ab、acd、abcd、a、d、c不适用于:bcda、cb、da(任何不在上述顺序中的)您可以在这里测试您的解决方案:http://rubular.com/r/wCpD355bubPS:字符可能不按

ruby - 在 Ruby Regex 中使用超过 9 个未命名的捕获

我有一个格式类似于日志条目的长字符串,我希望从中获取多个捕获并将它们存储在不同的变量中。我知道Ruby将前9个捕获存储到变量$1...$9中,它是否还将其他捕获存储在$10...$99中?如果不是,有什么简单的方法可以做到这一点? 最佳答案 String#match返回MatchData包含捕获数组的对象。m=Regexp.new('(.)'*20).match('Thequickbrownfoxjumpsoverthelazydog')m[12]#=>"r"虽然$12也可以:>$12#=>"r"