复杂的正则表达式检查两个单词和一个数量

时间:2013-04-24 17:12:39

标签: regex

好的,我要做的是检查是否存在

  • “TestItem-1”
  • 一个大于1的数字
  • “KG.Kg,kg,Kilo(s)或Kilogram(s)”列表中可能出现的单词之一

任何项目可以按任何顺序排列,并且彼此相差6个字。

必须在正则表达式中完成,因为无法访问底层脚本引擎

这就是我所拥有的,因为有一种检查方式,然后我决定使用1-999的范围进行数字检查。

\b(?:[T|t]estItem-1\W+(?:\w+\W+){1,6}(^[0-9]|[1-9][0-9]|[1-9][0-9][0-9])$)\W+(?:\w+\W+){1,6}[K|k]il[o|os]|[K|k][[G|GS]|[g|gs]]|[|K|k]ilogra[m|ms]\b

我需要找到的例子就像 -

  

“TestItem-1在12千克以上的量子中不稳定”
  “1公斤的TestItem-1”

虽然我不想找 -

  

“15个TestItem-1单位”

我知道我得到的不是每个部分看起来彼此独立但不能一起工作。

我把它传递到更强大的思想然后我的:)

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

\b(?:[2-9]|\d\d+)\b\s\b(?:KG.|Kg,|kg,|Kilos?|Kilograms?)\b(?:\S+\s){0,6}\bTestItem-1\b|\bTestItem-1\b(?:\S+\s){0,6}\b(?:[2-9]|\d\d+)\b\s\b(?:KG.|Kg,|kg,|Kilos?|Kilograms?)\b

重复并不理想,但没有我认为最好的外观。我会尝试改进它。