在正则表达式方面需要帮助。
1) 格式:
Advisor Geologist – HighMount Exploration & Production LLC – Oklahoma City, OK
我想获取最后一个字符和破折号之间的文本。IE。Oklahoma City, OK
. 请注意,文本可能包含多个破折号。
试过这个:
~-([.*$]+)~
试图在破折号和字符串结尾 (.*$) 之间找到。需要知道如何检查最后一次出现的破折号。
在正则表达式方面需要帮助。
1) 格式:
Advisor Geologist – HighMount Exploration & Production LLC – Oklahoma City, OK
我想获取最后一个字符和破折号之间的文本。IE。Oklahoma City, OK
. 请注意,文本可能包含多个破折号。
试过这个:
~-([.*$]+)~
试图在破折号和字符串结尾 (.*$) 之间找到。需要知道如何检查最后一次出现的破折号。
您不需要正则表达式,explode()
破折号上的字符串,并取最后一个元素。
$str = 'Advisor Geologist – HighMount Exploration & Production LLC – Oklahoma City, OK';
$arr = explode( '–', $str);
$last = trim( end( $arr));
echo $last;
效率更高。
如果您需要使用正则表达式,请使用
$pattern = '/[^\s–-][^–-]*?(?=\s*$)/';
preg_match($pattern, $subject, $matches);
在这里测试这个演示。
strrpos ()也可以提供帮助。
$str = 'Advisor Geologist – HighMount Exploration & Production LLC – Oklahoma City, OK';
$result = trim(substr($str, strrpos($str, '-')+1));
对于固定格式,您可以使用list() & explode()
:
$str = 'Advisor Geologist – HighMount Exploration & Production LLC – Oklahoma City, OK';
list($occupation, $company, $city) = explode('-', $str);