2011-04-12 6 views
4

선도 "A, An, The"를 제거하고 쉼표와 공백 다음에 strong에 추가하는 책 제목 정렬 필드를 만들려고합니다. 따라서 "The Road"는 "Road, The"가 될 것입니다.PHP Regex 디스플레이 문제

소리는 간단하지만 아래 코드에는 IE (다른 브라우저 없음)에서 거대한 횡설수설을 뱉어 내리는 내용이 있습니다.

$node_field[0]['value'] = preg_replace(
    '/^(A|An|The|a|an|the) (.*)/', 
    "$2\x00,$1", 
    $node->title 
); 
당신은 뭔가 사용해야
+0

거기에 null ('\ x00')을 넣는 이유는 무엇입니까? 그것은 덤핑 문자열에 관해서 매우 의심스러운 인물입니다. –

+1

\ x00 그냥 공백을 사용하십시오. \ x00은 null입니다. –

+0

횡령은 어떻게 생겼습니까? 복사/붙여 넣기를받을 수 있습니까? –

답변

4

있는 "A"... "는 ..."또는 "그 ..."로 변경해야 더 같은

만약 내가 제대로 이해하고
$node_field[0]['value'] = preg_replace(
'/^(A|An|The) (.*)/i', 
"$2, $1", 
$node->title 
); 

, "..., A", "..., An"및 "..., The"로 나타납니다.

Regex 패턴의 슬래시 뒤의 i는 대소 문자를 구별하지 않으므로 A, An 또는 The의 모든 버전을 포착해야합니다.