查找两个字符串,它们之间具有最大字符数

时间:2014-03-12 21:11:27

标签: ruby regex

我有一个关键字列表,称之为[猫,狗,鸟]和正则表达式来查找权重(\ dlbs)。

我只想找到

的项目
  1. 从数组中的项目开始
    • (猫|狗|?鸟)
  2. 匹配权重正则表达式
    • (\ ​​dlbs)
  3. 在1和2之间最多只有30个字符(不包括空格)。
    • 不想或不想捕捉1-30个字符
  4. 任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:1)

这样做:

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

Regular expression visualization

Debuggex Demo

编辑以反映"排除空白"点。

例如,它匹配以下各项:

The cat weighs almost exactly 7lbs.
The cat weighs                         almost exactly 7lbs

注意:您在?的问题中似乎有一个迷路(cat|dog|bird?) - 我忽略了它。此外,您确定要\dlbs,而不是17 lbs17 pounds吗?您可以使用

轻松解决这些问题
(cat|dog|bird)\s*(?:(?:\S\s*){0,30})(\d\s*(?:lb|pound)s)

答案 1 :(得分:1)

(\s*.){0,30}最多30个字符,不包括空格:

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