Php 用于解析短术语的错误工作正则表达式
我为PHP编写了一些正则表达式来解析字符串的缩写 我的代码:Php 用于解析短术语的错误工作正则表达式,php,regex,Php,Regex,我为PHP编写了一些正则表达式来解析字符串的缩写 我的代码: $re = "/(([$]?+[А-Яа-я.]+[.]){1,})/"; $str = "г. Братск, ж.р. Южный Падун, ул. Мамырская, 62А, за остановкой"; preg_match_all($re, $str, $matches); 这个脚本返回: Array ( [0] => Array ( [0] => г.
$re = "/(([$]?+[А-Яа-я.]+[.]){1,})/";
$str = "г. Братск, ж.р. Южный Падун, ул. Мамырская, 62А, за остановкой";
preg_match_all($re, $str, $matches);
这个脚本返回:
Array
(
[0] => Array
(
[0] => г.
[1] => ж.
[2] => л.
)
[1] => Array
(
[0] => г.
[1] => ж.
[2] => л.
)
[2] => Array
(
[0] => г.
[1] => ж.
[2] => л.
)
)
但它的工作原理如下:
[1]=>“ж.ж.”,[2]=>“жж”。
这意味着,我的正则表达式解析了缩写的一部分,尽管我需要得到完整的缩写
例如,在regex101.com上,它非常有效:
如何获得完整的缩写
(“Γ.”、“ж.ж.”、“ж.ж.”)
?您需要使用unicode修饰符,u
例如:
$re = "/(([$]?+[А-Яа-я.]+[.]){1,})/u";
$str = "г. Братск, ж.р. Южный Падун, ул. Мамырская, 62А, за остановкой";
preg_match_all($re, $str, $matches);
print_r($matches);
输出:
Array
(
[0] => Array
(
[0] => г.
[1] => ж.р.
[2] => ул.
)
[1] => Array
(
[0] => г.
[1] => ж.р.
[2] => ул.
)
[2] => Array
(
[0] => г.
[1] => ж.р.
[2] => ул.
)
)
如果下面的答案对您有效,请务必将其标记为答案。