2012-12-22 2 views
-3

특수 문자 앞에 백 슬래시를 추가하는 데 도움이 필요합니다. 참고 : 간단한 스크립트를 만들어야하므로 모든 모듈을 사용할 수 없습니다.Perl 정규식 문자 이전에 문자 추가

하자 유 같은 라인이 있다고 :

<link class="include" rel="stylesheet" type="text/css" href="../css/style.css" /> 

지금 내가 추가하고 싶습니다 "을 \"와 같은 어떤 "또는 기타 특수 펄 문자 전에 : 그것은해야 끝에

$%/!`| 

수 :

:

<link class=\"include\" rel=\"stylesheet\" type=\"text/css\" href=\"../css/style.css\" /> 

내가 사용하려고

$line =~ s/["%'\/{|}]+/\\$1/g; 

작동하지 않았습니다.

어떤 정규 표현식을 사용해야합니까?

+0

"작동하지 않음"은 문제를 설명하기에 매우 나쁜 방법입니다. 어떤 일이 발생했는지 정확히 설명하거나 아무 일도 일어나지 않았다고 말할 때 어떤 상황도 거의 없습니다. – TLP

+2

이것은 XY 문제 일 가능성이 높습니다. 여기서 잘못된 질문을하고 계십니다. 왜 당신은 문자열 안의 그 문자들을 이스케이프해야합니까? – TLP

+0

"특수 문자"는 무엇을 의미합니까? 너 왜 이걸 끈에 붙이고 있니? 당신은 실제로 무엇을 성취하려고합니까? –

답변

1

$1에서 특수 문자를 사용할 수 있습니다. 당신은() 더 눈에 띄는 만들기 위해 나는 약간의 간격을 추가하고 // X 자격이 ()

$line =~ s/ (["%'\/{|}]) /\\$1/xg; 

참고를 사용하여 캡처 할 필요가 수행합니다.

또 다른 방법은 앞으로 미리보기를 사용하는 것입니다.

$line =~ s/(?= [%'\/{|}]) /\\/xg; 
+0

죄송합니다 - \ 그리고 stackoverflow가 예상대로 표시되지 않았습니다. 이게 더 나은가요? – justintime

+0

은 원래 질문에서 복사 한 +를 제거했습니다. 이것은 특수 문자의 시퀀스 중 첫 번째가 이스케이프 된 것을 의미했습니다. – justintime

+0

고마워요, 잘 작동합니다. – user1734552