Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Regex 工作人员的正则表达式_Regex - Fatal编程技术网

Regex 工作人员的正则表达式

Regex 工作人员的正则表达式,regex,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 Manag

我正在尝试获取一个正则表达式,该正则表达式将匹配以下任何字符串:

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个单词,其中manager或directory是第一个或第二个单词。这可能吗

谁能给我指出正确的方向吗

我应该使用像\b这样的单词边界吗

是的,这里需要单词边界:

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

我想我最多需要两个词,其中经理或主管是第一个或第二个词。这可能吗

是的,您可以使用一个正则表达式()来实现这一点:

这将搜索以下任一项:

  • 行开头的单词manager或director或
  • 一个单词,一个或多个空格,然后是单词manager或director
不同的regex“味道”有不同的功能,所以你应该用你所使用的技术来标记你的问题

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


实际上,单词边界可能很好。

t在野外大约有1000个正则表达式系统,其中一些在“目录”上不匹配,因为默认情况下,它们不假设您需要子字符串匹配。你应该更准确地说明这个问题的来龙去脉。我想我最多只需要两个字,“总经理-权力”就是三个字。@dagda:这会使团队无法捕获。您可以删除
?:
并查看它对结果的影响(请参阅匹配结果下面的“匹配捕获”部分)。
/^(?:\w+ +)?(manager|director)\b/i