s/(ab)\d/\11/g
식이 이러면 11번째 매치결과를 가리키게 됩니다. 제가 원하는것은 첫번째결과에 1을 붙이는 건데요. 이건 어떻게 탈출시켜줘야 할까요?
백레퍼런스는 9번까지 있는거 아니 었던가요?
표준은 9번까지만 쓸수 있는것으로 아는데..;;
일단 코멘달고 해봐야 겠음..ㅋㅋ
알쏭달쏭 하군요..
역시 펄입니다..ㅋㅋ
1 #!/usr/bin/perl 2 3 $data="ab1ab2ab3ab4ab5"; 4 5 $x=1; 6 $data=~s/(ab)\d/\1$x/g; 7 8 print $data."\n";
요렇게 하니 의도하는 바대로 나오긴 합니다. --;
s/(ab)\d/\11/g 식이 이러면 11번째 매치결과를 가리키게 됩니다. 제가 원하는것은 첫번째결과에 1을 붙이는 건데요. 이건 어떻게 탈출시켜줘야 할까요?
s/(ab)\d/${1}1/g
그리고 backreference 는 9개 까지로 제한되지 않습니다. \10 과 \010 의 구별에 대해서는 perlretut 에 나와 있습니다.
War doesnt determine whos right, just whos left.
감사합니다. 아주 좋군요.
https://xenosi.de/
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
우잉?
백레퍼런스는 9번까지 있는거 아니 었던가요?
표준은 9번까지만 쓸수 있는것으로 아는데..;;
일단 코멘달고 해봐야 겠음..ㅋㅋ
좀 알쏭달쏭
알쏭달쏭 하군요..
역시 펄입니다..ㅋㅋ
요렇게 하니 의도하는 바대로 나오긴 합니다. --;
Re: pcre(perl) 정규식 \1 \2 질문입니다.
s/(ab)\d/${1}1/g
..처럼 쓰셔야 합니다. backreference 를 regexp 외부에서 사용하는 것은 올바르지 않습니다. (물론 대부분의 경우에는 \1 과 $1 은 같은 결과를 돌려주지만)
그리고 backreference 는 9개 까지로 제한되지 않습니다. \10 과 \010 의 구별에 대해서는 perlretut 에 나와 있습니다.
War doesnt determine whos right, just whos left.
감사합니다. 아주 좋군요.
감사합니다. 아주 좋군요.
https://xenosi.de/
댓글 달기