正则表达式只包括一个匹配的

时间:2016-02-15 19:25:17

标签: ruby regex

我有一些代码可以逐行读取文件。它需要匹配具有以下名称的标记的每一行:

/根| classcod |日期|一年|代理|办公| popaddress |位置|拉链| NAICS |联系我们/

我的代码根据页面上的数据构建标签树,然后通过树进行映射,以将节点名称与上面的列表进行比较。我需要将名称与其中一个完全匹配,或者完全排除它。

我遇到的问题是,当其中一个标签名称中包含列表中任何一个名称的一部分时,就会添加该名称。例如:

respdate
date

代码包含“重新更新”标签。以及' date'。如何使正则表达式完全排除respdate,因为它不匹配" date"到底是什么?

1 个答案:

答案 0 :(得分:1)

一种选择是使用word boundaries metacharacter, \b

将所有单词分组到非捕获组中,并在两侧包含单词边界的组:

\b(?:root|date|year)\b