Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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正则表达式显示问题_Php_Regex_Drupal_Preg Replace - Fatal编程技术网

PHP正则表达式显示问题

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 ); 你应该使用更

我正在尝试创建一个用于对书籍标题进行排序的字段,该字段将去掉前导的“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) (.*)/i', 
 "$2, $1",
 $node->title
);
如果我理解正确,应该将“A…”、“An…”或“The…”分别更改为“…、A”、“…、An”和“…、The”


正则表达式模式中斜杠后的i使其不区分大小写,它应该捕获A、An或的所有版本。

在其中放置null(
\x00
)的原因是什么?在转储字符串时,这是一个非常可疑的字符。删除\x00仅使用普通空格,\x00是一个空字符\x00是一个空字符乱码是什么样子的?我可以得到一个拷贝/粘贴吗?如果这是一个IE唯一的问题,它不应该有一个IE标签吗?哇-thx的难以置信的快速响应