2015-01-05 2 views
0

나는 perl을 처음 사용합니다. 나는 다음 대체 표현식을 가지고있다 :Perl의 대체 연산자

$tmp =~ s:/x/y/z::; 

나는 많은 것을 수색했으나 비슷한 표현을 찾을 수 없었다. 무엇을 의미합니까?

+1

's |/x/y/z ||'또는's!/x/y/z !! '는보다 일반적인 변형입니다. –

+2

'|'를 사용하는 것은 꽤 드뭅니다. 사실 패턴에서'|'가 자주 필요하기 때문입니다. 's {} {}'는 아마's ///'다음으로 두 번째로 흔합니다. – ikegami

답변

3

의미 : /x/y/z을 아무 것도 교체하지 마십시오.

exmaple를 들어

: 당신이 /a/b/x/y/z 같은 strng이있는 경우 결과가 될 것입니다 /a/b

4

당신은 공백이 아닌 구분 기호로 모든 문자를 사용할 수 있습니다; 여기에 가장 일반적인 문자 대신 / (s/foo/bar/) 대신 구분 기호는 : (s : foo : bar :)입니다. 대체 할 문자는 슬래시 문자이고 슬래시 구분 기호를 사용하면이 문자를 이스케이프 처리해야합니다 (s/\/x\/y\/z//) 많은 사람들이 추악한 것으로 간주합니다.

그래서 표현식은 $tmp에서 첫 번째 /x/y/z을 삭제하는 것입니다.

+0

이 oper ** on **'$ tmp' 변수 참고 : –

+1

@ F.Hauri Thanks. 나는 OP가 요구하고있는 것이'= ~'의 일반적인 사용이 아니라 구분자의 변경이라고 가정하고 있습니다. 제가 틀렸다면, 그것에 대해 더 많이 덧붙일 것입니다. – ysth

관련 문제