2011-09-16 3 views
0

누구든지 정규식 메타 문자가 포함 된 문자열에서 텍스트를 제거하는 PHP 정규식을 사용하는 방법을 알아? 예를 들어메타 문자가 포함 된 구에 PHP에서 regex를 사용하는 방법은 무엇입니까?

-

텍스트 문자열 전 -

"Look at the shiny apple [word]" //where 'word' could be anything 

텍스트 문자열 후 -

"look at the shiny apple" 
+0

메타 문자가 포함 된 특정 문자열 (이미 답변 됨) 또는 일반적으로 메타 문자가 포함 된 문자열을 대체 하시겠습니까? 그런 다음'[] [^ $. \ * +?()]'(이것은 아마도 불완전한 문자 클래스 일 뿐이며 여러분에게 아이디어를주기 위해)와 같이 열거해야합니다. – tripleee

답변

1

preg_replace을 사용하여 정규식으로 무엇인가를 바꿉니다.

특수 문자를 문자 그대로 사용하려면 글자 그대로 \[과 같은 백 슬래시를 사용하여 정규 표현식의 문자를 이스케이프 처리해야합니다 ("[")와 일치 시키려면).

1
preg_replace('/Look at the shiny apple \[\w+\]/gi','Look at the shiny apple', $subject); 

트릭을 할해야합니다.

+0

1 깨끗하고 똑바로, ga – chown

+1

이것은 대괄호 안에있는 단어뿐만 아니라 전체 문장을 대체합니다. – stema

+0

들으세요! 필요한 방식으로 코드를 업데이트합니다. – Jesse

0

귀하의 정규식은 다음과 같이 보일 것입니다 :

"(?<=Look at the shiny apple)\S*" 

는 IT 그것이 경기 전에 존재해야한다고, 긍정적 인 lookbehind이지만, 경기에 포함하지 않는 (< =?)가.

이 테스트를위한 좋은 도구입니다 정규식을 알아내는 : http://www.gskinner.com/RegExr/

편집 :. 뒤에 공백없이 아래 언급 된 *는 데이터의 나머지 부분과 일치 것 \의 S도 사용할 수 있습니다. 감사합니다 Jesse

+0

글쎄, "반짝이는 사과 좀 봐"후에 모든 캐릭터를 포착하고 싶다면, 그게 효과적 일지 모르겠지만 적어도 이것이 (빛나는 사과를 보아라. \ s *) \ S * '때문에 문자열 내용 전체를 캡처하지는 않습니다. – Jesse

+0

나는 실제로 잊어 버렸습니다.. * 다음에 공백이 있지만 여기서는 잘 보이지 않습니다. 죄송합니다, 예 \ S뿐만 아니라 작동합니다. – Howard

+0

또 다른 깔끔한 도구 : http://regexpal.com – Jesse

관련 문제