Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
Php 用于解析短术语的错误工作正则表达式_Php_Regex - Fatal编程技术网

Php 用于解析短术语的错误工作正则表达式

Php 用于解析短术语的错误工作正则表达式,php,regex,Php,Regex,我为PHP编写了一些正则表达式来解析字符串的缩写 我的代码: $re = "/(([$]?+[А-Яа-я.]+[.]){1,})/"; $str = "г. Братск, ж.р. Южный Падун, ул. Мамырская, 62А, за остановкой"; preg_match_all($re, $str, $matches); 这个脚本返回: Array ( [0] => Array ( [0] => г.

我为PHP编写了一些正则表达式来解析字符串的缩写

我的代码:

$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] => ул.
        )

)

如果下面的答案对您有效,请务必将其标记为答案。