Php i';你不会学外语吗?

Php i';你不会学外语吗?,php,regex,encoding,modifier,Php,Regex,Encoding,Modifier,我的字符串是外语。我使用以下正则表达式: $str = 'մի քանի Բառ ձեր մասին'; $word = 'բառ'; $cont = preg_match_all("/.{0,80}[^\s]*?".preg_quote($word)."[^\s]*?.{0,80}/si",$str,$matched); print_r($matched);//returns Array ( [0] => Array ( ) ) .. …但如果我设置: $word = "Բառ";

我的字符串是外语。我使用以下正则表达式:

$str = 'մի քանի Բառ ձեր մասին';
$word = 'բառ';

$cont = preg_match_all("/.{0,80}[^\s]*?".preg_quote($word)."[^\s]*?.{0,80}/si",$str,$matched);
print_r($matched);//returns Array ( [0] => Array ( ) ) ..

…但如果我设置:

$word = "Բառ";//returns Array ( [0] => Array ( [0] => մի քանի Բառ ձեր մասին ) )  

如何才能在外语中也使用I修饰语?

尝试添加
u
修饰语:

$cont = preg_match_all("/.{0,80}[^\s]*?".preg_quote($word)."[^\s]*?.{0,80}/siu",$str,$matched);

尝试添加
u
修改器:

$cont = preg_match_all("/.{0,80}[^\s]*?".preg_quote($word)."[^\s]*?.{0,80}/siu",$str,$matched);

此代码的目的是什么?你是想从一篇文章中加上周围的单词中提取这个单词吗?@Gumbo完全正确。如果字符串中有子单词,我会尝试提取单词和周围的单词。你觉得这个解决方案怎么样?我宁愿把文本分成几个单词,找到想要的单词或包含想要的单词的单词,然后得到周围的单词。或者,如果您想使用
preg\u match\u all
,只需搜索想要的单词并使用
preg\u OFFSET\u CAPTURE
标志来获取
substr
的偏移量(请参阅)。好的,但正如我所知,如果我也使用
preg\u OFFSET\u CAPTURE
来获取OF集,如果偏移量小于我提到的值,它将返回ampty结果。我说得对吗?也就是说,如果我设置了偏移量=30,但只有29个字符,它将返回空结果?这段代码的目的是什么?你是想从一篇文章中加上周围的单词中提取这个单词吗?@Gumbo完全正确。如果字符串中有子单词,我会尝试提取单词和周围的单词。你觉得这个解决方案怎么样?我宁愿把文本分成几个单词,找到想要的单词或包含想要的单词的单词,然后得到周围的单词。或者,如果您想使用
preg\u match\u all
,只需搜索想要的单词并使用
preg\u OFFSET\u CAPTURE
标志来获取
substr
的偏移量(请参阅)。好的,但正如我所知,如果我也使用
preg\u OFFSET\u CAPTURE
来获取OF集,如果偏移量小于我提到的值,它将返回ampty结果。我说得对吗?也就是说,如果我设置偏移量=30,但只有29个字符,它将返回空结果?完美。多谢。你能解释一下为什么u修饰语对语言有影响吗?据我所知,它只反转贪婪?@Syom:
U
(大写)表示非贪婪匹配,
U
(小写)表示将模式解释为UTF-8编码。看,太好了。多谢。你能解释一下为什么u修饰语对语言有影响吗?据我所知,它只反转贪婪?@Syom:
U
(大写)表示非贪婪匹配,
U
(小写)表示将模式解释为UTF-8编码。看见