Perl의 여러 위치에서 문자열에 문자를 삽입하는 가장 좋은 방법은 무엇입니까? 숫자가 아닌 문자를 제거한 문자열이 있습니다. 그 후, 끝에서부터 네 번째 위치와 여덟 번째 위치에 대시를 삽입하고 싶습니다. XXX-XXX-XXXXPerl에서 문자열에 문자를 삽입하는 가장 좋은 방법은 무엇입니까?
$number =~ s/[^0-9]//g;
substr($number, -4, 0, '-');
substr($number, -8, 0, '-');
위의 코드를 할 수 있지만, 한 줄에 할 수있는 정규 표현식이 있습니까 : 당신은 그들이 모두 같은 형식을 가질 수 있도록 나는 모든 입력 된 전화 번호를 수정하고있어, 그것을 짐작? 내가 모르는 뭔가가 더 효율적인가?
미리 감사드립니다. 성능에 대한
이$number =~ s/(...)(...)(....)$/$1-$2-$3/
's의/(\ d를 {3}) (\ d를 {3 }) (\ d {4})/$ 1- $ 2- $ 3 /' – chilemagic
허용되는 문자에 실제로'+'가 필요합니까? – Miller
@Miller 나는 추측한다. 지금 편집합니다. 감사! –