Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.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 preg_match get word与西里尔字符匹配_Php_Regex - Fatal编程技术网

php preg_match get word与西里尔字符匹配

php preg_match get word与西里尔字符匹配,php,regex,Php,Regex,我试图从字符串中得到一些单词,但这个单词可能会有西里尔字母,我试图得到它,但我所要做的就是——不工作 请帮帮我; 我的代码 我需要得到KrossАыы 萨克斯 问题在于您的字符串使用UTF-8字符,而这些字符\w将不匹配。请在StackOverflow上检查此答案以获得解决方案: 基本上,您需要在表达式的末尾添加u修饰符,并使用\p{L}而不是\w问题是字符串使用UTF-8字符,而这些字符\w将不匹配。请在StackOverflow上检查此答案以获得解决方案: 基本上,您需要在表达式的末尾添加u

我试图从字符串中得到一些单词,但这个单词可能会有西里尔字母,我试图得到它,但我所要做的就是——不工作

请帮帮我; 我的代码

我需要得到KrossАыы


萨克斯

问题在于您的字符串使用UTF-8字符,而这些字符\w将不匹配。请在StackOverflow上检查此答案以获得解决方案:


基本上,您需要在表达式的末尾添加
u
修饰符,并使用
\p{L}
而不是
\w
问题是字符串使用UTF-8字符,而这些字符\w将不匹配。请在StackOverflow上检查此答案以获得解决方案:


基本上,您需要在表达式的末尾添加
u
修饰符,并使用
\p{L}
而不是
\w
问题是字符串使用UTF-8字符,而这些字符\w将不匹配。请在StackOverflow上检查此答案以获得解决方案:


基本上,您需要在表达式的末尾添加
u
修饰符,并使用
\p{L}
而不是
\w
问题是字符串使用UTF-8字符,而这些字符\w将不匹配。请在StackOverflow上检查此答案以获得解决方案:


基本上,您需要在表达式末尾添加
u
修饰符,并使用
\p{L}
而不是
\w
您可以使用u修饰符更改
\w
的含义。使用u修饰符,字符串被读取为UTF8字符串,
\w
字符类不再是
[a-zA-Z0-9\]
,而是
[\p{L}\p{N}}}

$pattern = '/\s(\w*|.*?)\s/u';
请注意,模式中的交替是无意义的:

您可以使用替换,其中第二个成员可以与第一个成员匹配相同的内容。(即,所有由
\w*
匹配的内容都可以由
*?
匹配,因为右侧有一个空格。这两个子模式将匹配两个空格之间的字符)

写入
$pattern='/\s(.*?\s/u'执行完全相同或更好的操作:

$pattern = '/\s(\S*)\s/u';
这避免了使用惰性量词

如果您的目标只是匹配ASCII和西里尔字母,那么最有效的(因为对于字符类,越小越快)是:

(*UTF8)
将通知正则表达式引擎必须将原始字符串读取为UTF8字符串


\p{西里尔字母}
是一个仅包含西里尔字母的字符类。

您可以使用u修饰符更改
\w
的含义。使用u修饰符,字符串被读取为UTF8字符串,
\w
字符类不再是
[a-zA-Z0-9\]
,而是
[\p{L}\p{N}}}

$pattern = '/\s(\w*|.*?)\s/u';
请注意,模式中的交替是无意义的:

您可以使用替换,其中第二个成员可以与第一个成员匹配相同的内容。(即,所有由
\w*
匹配的内容都可以由
*?
匹配,因为右侧有一个空格。这两个子模式将匹配两个空格之间的字符)

写入
$pattern='/\s(.*?\s/u'执行完全相同或更好的操作:

$pattern = '/\s(\S*)\s/u';
这避免了使用惰性量词

如果您的目标只是匹配ASCII和西里尔字母,那么最有效的(因为对于字符类,越小越快)是:

(*UTF8)
将通知正则表达式引擎必须将原始字符串读取为UTF8字符串


\p{西里尔字母}
是一个仅包含西里尔字母的字符类。

您可以使用u修饰符更改
\w
的含义。使用u修饰符,字符串被读取为UTF8字符串,
\w
字符类不再是
[a-zA-Z0-9\]
,而是
[\p{L}\p{N}}}

$pattern = '/\s(\w*|.*?)\s/u';
请注意,模式中的交替是无意义的:

您可以使用替换,其中第二个成员可以与第一个成员匹配相同的内容。(即,所有由
\w*
匹配的内容都可以由
*?
匹配,因为右侧有一个空格。这两个子模式将匹配两个空格之间的字符)

写入
$pattern='/\s(.*?\s/u'执行完全相同或更好的操作:

$pattern = '/\s(\S*)\s/u';
这避免了使用惰性量词

如果您的目标只是匹配ASCII和西里尔字母,那么最有效的(因为对于字符类,越小越快)是:

(*UTF8)
将通知正则表达式引擎必须将原始字符串读取为UTF8字符串


\p{西里尔字母}
是一个仅包含西里尔字母的字符类。

您可以使用u修饰符更改
\w
的含义。使用u修饰符,字符串被读取为UTF8字符串,
\w
字符类不再是
[a-zA-Z0-9\]
,而是
[\p{L}\p{N}}}

$pattern = '/\s(\w*|.*?)\s/u';
请注意,模式中的交替是无意义的:

您可以使用替换,其中第二个成员可以与第一个成员匹配相同的内容。(即,所有由
\w*
匹配的内容都可以由
*?
匹配,因为右侧有一个空格。这两个子模式将匹配两个空格之间的字符)

写入
$pattern='/\s(.*?\s/u'执行完全相同或更好的操作:

$pattern = '/\s(\S*)\s/u';
这避免了使用惰性量词

如果您的目标只是匹配ASCII和西里尔字母,那么最有效的(因为对于字符类,越小越快)是:

(*UTF8)
将通知正则表达式引擎必须将原始字符串读取为UTF8字符串

\p{西里尔字母}
是一个仅包含西里尔字母的字符类。

可能重复的可能重复的可能重复的可能重复的可能重复的