工作人员的正则表达式

时间:2010-08-25 19:55:52

标签: regex

我正在尝试获得一个与以下任何字符串匹配的正则表达式:

Sales Director:
Managing Director:
Sales Manager:
General Manager - Power:
Finance Director:
Procurement Manager:
Director:
Director:
Managing Director:
Finance Director:
Sales Director:
Managing Director:
Sales Manager:
Finance Director:
Procurement Manager:

但不是:

print directories and guides
defence Industry Directory
到目前为止,我有:

/(manager|director)/i

但这显然与目录,目录等相匹配。

我知道$符号表示单词的结尾,但我无法获得正确的语法。

我应该使用像\b这样的字边界吗?

我也不想在句子中用经理或导演拉回整句话。我想我最多需要2个单词,其中经理或目录是第一个或第二个单词。这可能吗?

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:2)

  

我应该使用像\ b?

这样的字边界吗?

是的,你需要字边界:

/\b(manager|director)\b/i

  

我想我最多需要2个单词,其中经理或导演是第一个或第二个单词。这可能吗?

是的,您可以使用单个正则表达式(rubular)执行此操作:

/^(?:\w+ +)?(manager|director)\b/i

这会搜索:

  • 该行开头的字管理员或主管或
  • 一个单词,一个或多个空格,然后是单词manager或director

答案 1 :(得分:0)

正则表达式的不同“风格”具有不同的功能,因此您应该使用您正在使用的技术标记您的问题。

如果你的正则表达式引擎支持负前瞻(“零宽度断言”),你可以使用 director(?![yi])要排除directory后跟i的实例。

真的,一个单词边界可能就好了。