여러 줄 문자열에서 텍스트 (문자 및 숫자)를 추출해야합니다. 내가 시도한 모든 것은 라인 피드/캐리지 리턴을 제거하지 않습니다.Perl에서 캐리지 리턴 및 줄 바꿈이 포함 된 문자열에서 숫자 문자열을 캡처하려면 어떻게해야합니까?
는 그것이 HEX에서"\r\n 50145395\r\n "
: 여기서
문제의 문자열 0D 0A 20 20 20 20 20 20 20 20 35 30 31 34 35 33 39 35 0 D 0A 20 20 20 20나는 시도 다음
$sitename =~ m/(\d+)/g;
$sitename = $1;
및
$sitename =~ s/^\D+//g;
$sitename =~ s/\D+$//g;
을 모든 경우에 53,691,363,210
및
$sitename =~ s/^\s+//g;
$sitename =~ s/\s+$//g;
내가 원치 않는 모든 문자를 제거 얻을 수 없습니다. 나는 이것을 cygwin perl과 Strawberry perl에서 실행했다.
감사합니다.
또한보십시오 http://perldoc.perl.org/functions/chomp.html – Ether
당신의 목표는 명확하지 않다, 그래서 당신은지도 전면에 응답을 얻고있다. 자릿수 만 잡으려고하는거야? 개행과 캐리지 리턴을 제거하려고합니까? 모든 공백을 제거하려고합니까? – FMc
이 질문은 "이 예제 문자열의 경우 '50145395'를 추출하려고합니다. 모든 경우에 추출하려는 데이터는 숫자 문자열입니다." 4 가지가 좋은 질문입니다 : 문제에 대한 명확한 진술, 몇 가지 샘플 코드, 샘플 입력 및 일치하는 샘플 출력. 샘플 데이터에 엣지 케이스가 포함되어 있는지 확인하십시오 (예 : \ r \ n 50145 \ r \ n395 \ rn의 숫자 블록 사이에 줄 바꿈이 허용 될 수 있습니다) – daotoad