【发布时间】:2014-09-17 12:27:21
【问题描述】:
我有一个函数可以从一个较长的字符串中找到 3 个单词的“片段”并将其提取到一个数组中。单词旁边的标点符号应该包含在单词中(例如,一个单词后跟一个逗号应该被视为一个单词)。
它在一个 UTF-8 字符上工作正常除了 - 双右引号 (U+201D - ”)。
我在我的正则表达式中做错了什么还是这是一个 PHP 错误?
正则表达式是:
$myarray = preg_match_all(
"/(\S)*(\s)(\S)*(\s)(\S)*(\s)/",
$incomingstring,
$output,
PREG_PATTERN_ORDER);
奇怪的是,正则表达式与双 Left 引号 (U+201C - “) 或我尝试过的其他一些 unicode 字符没有问题。
【问题讨论】:
-
我认为你必须使用
u修饰符 -
谢谢!是的 u 修饰符已经解决了这个问题。