在最后一次出现字符时分解字符串

Explode string on the last occurrence of character

我正在使用 php 7.4 并且我有以下字符串:

Tester Test Street 11 (Nursing Home, Example), 1120 New York
                                             '-------------Split String here 
                                   '-----------------------NOT HERE   

当我这样做时 explode() 我得到:

$addressAll = explode(", ", "Tester Test Street 11 (Nursing Home, Example), 1120 New York");

/*
array(3) {
  [0]=>
  string "Tester Test Street 11 (Nursing Home"
  [1]=>
  string "Example)"
  [2]=>
  string "1120 New York"
}
*/

不过,我想得到:

array(3) {
  [0]=>
  string "Tester Test Street 11 (Nursing Home, Example)"
  [1]=>
  string "1120 New York"
}

关于如何仅拆分最后一次出现的 , 的任何建议。

感谢您的回复!

使用strrpos() to find the position of the last comma in the input string and substr()提取位于最后一个逗号前后的子串:

$input = 'Tester Test Street 11 (Nursing Home, Example), 1120 New York';
$pos = strrpos($input, ',');
$prefix = substr($input, 0, $pos);
$suffix = substr($input, $pos + 1);

看到了in action.

preg_split() 的解决方案。 字符串由单个逗号分隔,仅后跟不带逗号的字符,直至字符串末尾。

$input = 'Tester Test Street 11 (Nursing Home, Example), 1120 New York';

$array = preg_split('~,(?=[^,]+$)~',$input);

?= 导致括号中的表达式不用作反向引用。