$str = 'Company Name Internal Transport Worldwide
Account Manager New Business';
I tried:
$re = "/b(internal.transport|accountmanag|account.manag).*W/mi";
// result: Internal Transport
$re = "/b(internal.transport|accountmanag|account.manag)w+/mi";
// result: Account Manager
$re = "/b(internal.transport|accountmanag.`*|account.manag.`*)W/mi";
// result: Internal Transport, Account Manager New
preg_match($re, $str, $matches);
我正在寻找这个结果:
- 内部运输
- 客户经理
正确的方法是什么?
您可以使用
'~b(?:internalWtransport|accountmanag|accountWmanag)w*~i'
查看正则表达式演示
详
-
b
- 词界 -
(?:internalWtransport|accountmanag|accountWmanag)
- 匹配三种备选方案之一的非捕获交替组:-
internalWtransport
-internal
,一个非单词字符,transport
-
|
- 或 -
accountmanag
-accountmanag
-
|
- 或 -
accountWmanag
-account
,一个非单词字符,manag
-
-
w*
- 0+ 单词字符。
请参阅 PHP 演示:
$str = 'Company Name Internal Transport Worldwide
Account Manager New Business';
$re = "/b(?:internalWtransport|accountmanag|accountWmanag)w*/i";
if (preg_match_all($re, $str, $matches)) {
print_r($matches[0]);
}
输出:
Array
(
[0] => Internal Transport
[1] => Account Manager
)