2013-06-03 1 views
2

그래서 나는 펄 새로운 그리고 난 정규식 시도하고있다 :대체 표현식 내부의 정규식과 Perl의 변수를 비교하는 방법은 무엇입니까?

my $address = 'http://mail.google.com/belmark'; 

s/$address=~(\w+:\/\/)(.*.com)(\/\w+)/$1$2\/dev\/public_html/ if ($address =~ /.*\/belmark/); 

그 코드가 대체 부분에 나에게 오류를 제공을 내가 미리 정의 된 변수를 사용한다 달성하고 싶다 무엇

대체 표현식 내의 정규식에서 비교하기. $_을 사용하여 성공적으로 비교할 수 있습니다. 그럼 어떻게해야합니까? 당신은 Perl로 정규식에 처음으로 광고를 게재 할 때는 perlrequick

+1

'$ address = ~ s/... '를 (를) 사용 하시겠습니까? –

답변

2
#!/usr/bin/perl 
use strict; 
use warnings; 
my $address = 'http://mail.google.com/belmark'; 

$address =~ s/(\w+:\/\/)(.*.com)(\/\w+)/$1$2\/dev\/public_html/ if ($address =~ /.*\/belmark/); 

print "Address is: $address"; 

Ideone demo

을 시작해야합니다.

+0

감사합니다. 그게 내 문제를 해결했습니다. – Monkey

1

이이 .net, .org 또는 뭔가 다른 ...

또 다른 가능한 옵션에 대한 작업을해야합니다.

my $address = 'http://mail.google.com/belmark'; 
$address =~ s/(\.(?:net|org|com)).*/$1\/dev\/public_html/ if $address =~ /belmark$/; 

print "$address\n"; 

__OUTPUT__ 
http://mail.google.com/dev/public_html 
관련 문제