안녕이 파일에서 읽은 다음 문자열 :숫자의 문자열의 첫 번째 숫자를 찾기
231 352 502 24 532 0 1234 5
가 어떻게 숫자의 문자열의 첫 번째 숫자를 잡기 위해 펄 정규식을 사용합니까?
는 나는 아무 소용에 다음을 시도했다 :
$num =~ /(\d+)/
감사합니다.
안녕이 파일에서 읽은 다음 문자열 :숫자의 문자열의 첫 번째 숫자를 찾기
231 352 502 24 532 0 1234 5
가 어떻게 숫자의 문자열의 첫 번째 숫자를 잡기 위해 펄 정규식을 사용합니까?
는 나는 아무 소용에 다음을 시도했다 :
$num =~ /(\d+)/
감사합니다.
는 아래 잘 wokrs :
$ echo 231 352 502 24 532 0 1234 5 | perl -n -e 'print $1 if /(\d+)(.*)/'
231
$ echo 231 352 502 24 532 0 1234 5 | sed -r 's/([0-9]+)(.*)/\1/'
231
(\ d +)가 올바른 것처럼 보이지만, 어떤 이유로 문자열의 모든 숫자를 얻고 있습니다. 파일에서 내 입력이 이상한 지 궁금해? 나는 이것을 더 깊이 조사해야 할 것이다. – user1220086
명령과 그 출력을 게시하십시오. – slayedbylucifer
$ line =/(\ d +) /; $ line = 231 352 502 24 532 0 1234 5. 전체 줄을 인쇄합니다. – user1220086
$s = "231 352 502 24 532 0 1234 5";
($num) = $s =~ /(\d+)/;
print $num;
당신은 매우 가깝습니다.
이my $line = '231 352 502 24 532 0 1234 5';
my ($num) = $line =~ /(\d+)/;
print $num;
출력을
231
중복 답변. 이 정확한 코드는 @ ooga의 답변에 이미 나와 있습니다. – slayedbylucifer
@slayedbylucifer : 가능한 한 늦게 * 변수를 선언하는 것이 중요합니다. 당신의 꼬리표는 무엇을 의미합니까? – Borodin
$ 인분 사용해 = ~/(^ \ D +)/I는이 값은 $ 1에 저장할 작동 바란다. –