2011-01-04 8 views
-1
string = "(KEY)anything (KEY)anything (A)anything (KEY)anything"; 

결과는regex를 사용하여 문자열을 대체하는 방법

이어야합니다.
string = "<p>anything</p> <p>anything</p> (A)anything <p>anything</p>"; 
+3

무엇을 시도 했습니까? 이제는 마치 코드 작성을 요청하는 것과 같습니다. –

+0

난 그냥 정규식 구문이 필요 – faressoft

+0

원래 문자열 정말 html입니까? 그렇다면 html 파서를 고려하십시오. – marcog

답변

1

는 해당 PHP 표기가 무엇이든 <p>$1</p>으로 \(KEY\)(\w+)를 교체하거나해야 정규식
+0

\\ (KEY \\) (\ w +) – faressoft

+0

@faressoft -')'는 이스케이프가 필요하지 않습니다. 이스케이프가 필요하지 않습니다. 이스케이프 처리되지 않은'('. – OrangeDog

+0

예를 들어, 파이썬은 불균형 괄호에 대해 불평 할 것입니다. –

2
$result = preg_replace('/\(KEY\)(\w+)/', '<p>\1</p>', $subject); 

이 예제에 적용됩니다.

anything 개 이상의 단어가 될 수 있으며, "(KEY) 후 아무것도 다음 여는 괄호 앞에"로 정의됩니다, 당신은 preg_replace이다 (http://php.net을

$result = preg_replace('/\(KEY\)([^(]+)/', '<p>\1</p>', $subject); 
0

체크 아웃 사용할 수있는 경우 /manual/en/function.preg-replace.php)

$pattern = '\(KEY\)(\w+)\s'; 
$replacement = '<p>$1</p>'; 
$string = preg_replace($pattern,$replacement,$string); 

그런 식으로 작동해야합니다.

관련 문제