PHP正则表达式显示问题
我正在尝试创建一个用于对书籍标题进行排序的字段,该字段将去掉前导的“a,An,the”,并在逗号和空格后将其附加到strong。这样,“路”就变成了“路,路” 听起来很简单,但下面的代码中有一些东西导致IE(没有其他浏览器)发出一大堆胡言乱语PHP正则表达式显示问题,php,regex,drupal,preg-replace,Php,Regex,Drupal,Preg Replace,我正在尝试创建一个用于对书籍标题进行排序的字段,该字段将去掉前导的“a,An,the”,并在逗号和空格后将其附加到strong。这样,“路”就变成了“路,路” 听起来很简单,但下面的代码中有一些东西导致IE(没有其他浏览器)发出一大堆胡言乱语 $node_field[0]['value'] = preg_replace( '/^(A|An|The|a|an|the) (.*)/', "$2\x00,$1", $node->title ); 你应该使用更
$node_field[0]['value'] = preg_replace(
'/^(A|An|The|a|an|the) (.*)/',
"$2\x00,$1",
$node->title
);
你应该使用更像
$node_field[0]['value'] = preg_replace(
'/^(A|An|The) (.*)/i',
"$2, $1",
$node->title
);
如果我理解正确,应该将“A…”、“An…”或“The…”分别更改为“…、A”、“…、An”和“…、The”
正则表达式模式中斜杠后的i使其不区分大小写,它应该捕获A、An或的所有版本。在其中放置null(
\x00
)的原因是什么?在转储字符串时,这是一个非常可疑的字符。删除\x00仅使用普通空格,\x00是一个空字符\x00是一个空字符乱码是什么样子的?我可以得到一个拷贝/粘贴吗?如果这是一个IE唯一的问题,它不应该有一个IE标签吗?哇-thx的难以置信的快速响应