문제

나는 줄이있다 행동 - [n] ew, [u] pdate 또는 [d] elete : n preg_replace를 사용하여 "action- [n] ew, [u] pdate 또는 [d] elete : u"somhow로 대체해야합니다. 그것은 동일하게 유지됩니다.

내 코드는 다음과 같습니다

$action = Action - '[N]ew, [U]pdate, or [D]elete : U';
$line = preg_replace("/(Action - [N]ew, [U]pdate, or [D]elete : N)/",$action,$line);
도움이 되었습니까?

해결책

[ 그리고 ] 정규 표현의 특수 인물입니다. 일치하려면 탈출해야합니다.

"/(Action - \[N\]ew, \[U\]pdate, or \[D\]elete : N)/"

탈출하지 않고 내면의 표현 [ 그리고 ] 그들 안의 모든 캐릭터 중 하나와 일치합니다. 그래서 원래의 경우, "[N]ew" 일치하고 있었다 "New". 그렇다면 "[NP]ew", 그것은 일치했을 것입니다 "New" 또는 "Pew".

다른 팁

당신은 필요하지 않습니다 preg_replace 하기 위해서. 간단한 str_replace 충분할 것입니다 :

$action = 'Action - [N]ew, [U]pdate, or [D]elete : U';
$line = str_replace('Action - [N]ew, [U]pdate, or [D]elete : N', $action, $line);

몇 가지 문제 :

1) 첫 번째 줄의 구문 오류. 당신의 인용문은 잘못 배치됩니다. 그것은해야한다:

 $action = "Action - [N]ew, [U]pdate, or [D]elete : N";

2) 정사각형 괄호를 피해야합니다 ([ 그리고 ]) 정기적 인 표현. 또는 할 수 있습니다.

 $line = preg_replace("/N$/", "U", $action);

그래서 그들을 결합 :

 $action = "Action - [N]ew, [U]pdate, or [D]elete : N";
 $line = preg_replace("/N$/", "U", $action);

'['및 ']를 피하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top