Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 查找两个字符串之间的最大字符数_Ruby_Regex - Fatal编程技术网

Ruby 查找两个字符串之间的最大字符数

Ruby 查找两个字符串之间的最大字符数,ruby,regex,Ruby,Regex,我有一个关键字列表,称之为[cat,dog,bird],还有一个正则表达式来查找权重(\dlbs) 我只想找到 从数组中的项开始 (猫、狗、鸟?) 匹配权重正则表达式 (\dlbs) 1之间最多只能有30个字符(不包括空格)。二,。 不想或不想捕获1-30个字符 感谢您的帮助 这样就可以了: (cat|dog|bird)\s*(?:(?:\S\s*){0,30})(\dlbs) 编辑以反映“排除空白”点 例如,它匹配以下各项: The cat weighs almost exa

我有一个关键字列表,称之为[cat,dog,bird],还有一个正则表达式来查找权重(\dlbs)

我只想找到

  • 从数组中的项开始
    • (猫、狗、鸟?)
  • 匹配权重正则表达式
    • (\dlbs)
  • 1之间最多只能有30个字符(不包括空格)。二,。
    • 不想或不想捕获1-30个字符
  • 感谢您的帮助

    这样就可以了:

    (cat|dog|bird)\s*(?:(?:\S\s*){0,30})(\dlbs)
    

    编辑以反映“排除空白”点

    例如,它匹配以下各项:

    The cat weighs almost exactly 7lbs.
    The cat weighs                         almost exactly 7lbs
    
    注意:您在
    (猫|狗|鸟?
    )中的问题中似乎有一个流浪的
    -我忽略了它。另外,您确定您将拥有
    \dlb
    ,而不是说
    17磅或
    17磅
    ?您可以使用

    (cat|dog|bird)\s*(?:(?:\S\s*){0,30})(\d\s*(?:lb|pound)s)
    
    (\s*){0,30}
    最大30个字符,不包括空格:

    (cat|dog|bird)(\s*.){0,30}\s*(\dlbs)
    

    你的底线是什么?反对票(和结束票)来自那些认为你的问题不清楚的读者。这根绳子看起来像“猫20磅,狗60磅,鸟450磅”
    还是“我的猫重20磅,我的狗60磅,大鸟尖450磅”还是别的什么?您要查找的每个“项”是数组(例如,
    ['dog',60]
    )、子字符串(
    'dog Is 60 lbs'
    )还是其他什么?从方法
    doit(str)
    的角度考虑这一点。您希望
    doit
    为几个示例字符串中的每个字符串返回什么(包括“边缘案例”,如“猫狗40磅”)。要做到这一点,请毫不拖延地编辑您的问题(不要加评论)。很抱歉,SO的难点之一是您必须提出一个问题,同时充分观察实际数据以满足。。“客户”。虽然我确实发现了我的(愚蠢的)错误,但我觉得Ed应该因为他及时而恰当的回答而得到赞扬。不过,如果你决定关闭它,我会理解的。现在通过编辑来保存问题还不算太晚。(我没有投反对票,因为我觉得如果澄清的话,这可能是一个好问题。)谢谢Ed!我试过了,但似乎没有抓住我想要做的事情。怎么会这样?空白部分?请参阅我的编辑以解决空白问题。