2012-11-16 1 views
0

가능한 중복 : preg_replace를 사용하여 중괄호로 묶은 쉼표를 괄호로 묶은 쉼표로 찾아서 바꾸는 정규식은 무엇입니까?

찾을 preg_replace이다를 사용하여 양쪽에 중괄호 쉼표로 양쪽에 중괄호하지 쉼표를 대체 할 수있는 정규식은 무엇입니까
Regex to match comma not between grouping symbols

?

예 :

$subject = "blah.blah,{blah.blah},blah.blah"; 

$result = "{blah.blah},{blah.blah},{blah.blah}"; 

않도록이 및 기타 원치 않는 변화 :

$result = "{blah.blah},{{blah.blah}},{blah.blah}"; 
+0

@Asad 무엇? preg_replace를 찾아서 바꿀 수 없습니까? –

+0

@mario 제 질문은 다소 유사하지만 귀하가 언급 한 질문의 정확한 사본이 아닙니다 –

+0

이전 질문을 복제하는 것에 대해 사과해야 할뿐만 아니라 답변에 감사드립니다. –

답변

1
preg_replace("/(?<=^|,)([^{},]+)(?=$|,)/", '{$1}', "blah.blah,{blah.blah},blah.blah"); 
+0

'{$ 1}'에 큰 따옴표 대신 아포스트로피를 사용하거나 구문 분석 오류를 반환 할 수 있습니다. –

+0

@ FabrícioMatté 좋습니다, 감사합니다. –

+0

도움을 주셔서 감사합니다. –

0

대답 작동하지만 모양 숨김 싶게 모습-이후에있는 더 나은 정규 표현식의 원인이 기계에 비싼 :

+0

나는 이것도 시도해 보았고 내가 제공 한 예제 문자열에서 효과가 있었다. 룩앤더와 룩앤필의 비용에 대해 알려 주셔서 감사합니다. –

관련 문제