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