2013-10-11 6 views
0

을 replacaing 위해 나는 다음과 같은 패턴을 교체하기위한 정규식을 찾고 있어요 [| E14L0이 샘플 문자열 에서 친절정규식 사용자 정의 패턴

cash|E14L0^7.0,cash|E14L2^7.0,cash|E14L1^7.0,receivables^107.0,cash|E14L3^7.0, 

원하는 출력이

"cash"^7.0 "cash"^7.0 "cash"^7.0 "receivables"^107.0 "cash"^7.0 

요구 사항 모든 패턴입니다 도움 | E {숫자} L {숫자}'"' (큰 따옴표)로 바꿔야합니다. 두 단어 사이의 모든 ','' "' {공백 큰 따옴표}

도움 주셔서 감사합니다.

답변

0

정규식 일치하는 패턴은 \|E\d+L\d+\^([^,]+), 것, 그리고 당신이 이런 식으로 그것을 사용하는 것이 생각 : preg_replace("\\|E\\d+L\\d+\\^([^,]+),", "\"$1 \"", target_string)을 - 패턴 매개 변수에 백 슬래시의 두 배를 확인합니다.

편집 : 공간에 대한 두 번째 요구 사항이 누락되었습니다.

당신은 그 두 가지 대체 패턴해야
0

:

echo preg_replace(['/\|E\d+L\d+/','/\b,\b/'], ['"', ' "'], $str); 

결과가 있습니다 :

cash"^7.0 "cash"^7.0 "cash"^7.0 "receivables^107.0 "cash"^7.0,