펄 파일 정규식으로 추출 질문이요!

majestic의 이미지

83F-10621-F_83F-10621-F.jpg
83F-11149-F_83F-11149-F.jpg
84F-10420-F_84F-10420-F.jpg
84F-10420-F_84F-10420-F.jpg
87F-13064-F-2_87F-13064-F-2.jpg

위에 파일들이 있는데

정규식을 써서 이 파일들을 추출해서 지정된 다른 폴더로 이동시키는 코드를 짜보는 중입니다.

지금 공통점이 8로시작되고 3번째부터 F-시작 다음엔 다섯자리 숫자 다음에 -F로시작 이런식으로 짜려고하는데

정규식으로 부분부분 몇번째에 기호 -가 들어고가고 다음에 다섯자리 숫자들어가고 이런식으로도 정규식을

짤 수있나요? 검색을 해봐도 전체적인 문자열에서만 적용되는 설명밖에 없어서 답답하네요...ㅠㅠ

raymundo의 이미지

'전체적인 문자열에서만 적용되는'이 무슨 뜻인지 모르겠습니다만, 정규표현식으로 구글링해서 나오는 문서의 99%에는 어떤 문자에도 매치되는 "." 기호의 설명이 있을 것 같은데요. 그리고 반복횟수를 지정하는 {숫자}도.

my @list = qw(
83F-10621-F_83F-10621-F.jpg
83F-11149-F_83F-11149-F.jpg
84F-10420-F_84F-10420-F.jpg
84F-10420-F_84F-10420-F.jpg
87F-13064-F-2_87F-13064-F-2.jpg
);
 
foreach my $file ( @list ) {
    if ( $file =~ /
        ^           # 문자열의 시작
        (           # 여기서부터 캡처
            8
            .       # 임의의 문자 하나
            F-
            \d{5}   # 임의의 숫자 다섯 개
            -F
        )           # 여기까지 캡처
        /x          # x 옵션: 정규식에 주석과 공백을 삽입 가능
    ) {
        my $extracted = $1;     # 첫번째 괄호에 캡처된 것은 $1에 담김
        print("[$file] => [$extracted]\n");
    }
 
}

참고: http://gypark.pe.kr/wiki/Perl/%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D

좋은 하루 되세요!

majestic의 이미지

$extrected에 안에 위 목록의 원본 파일이름으로 모두를 담는다고 했을때 캡쳐된것 뒤에 임의의 글자들을 처리할때 정규식에 임의의 문자를 표현해주는 . 이나 공백이 아닌 \S 쓰면 되는데 .{}이런 식으로 맞춰서 써주면 맨 밑에 파일이 글자수가 달라서 맨밑파일은 처리가 안되는데 어떻게 처리하죠?!? 임의의 나머지 문자를 갯수에 상관없이 나타내주는 식이 있나요??

majestic의 이미지

.{10, 20}이런식으로 수량한정자를 써도 에러가 나네요 ㅠㅠ

majestic의 이미지

이것저것다해보니 .+하니까 되네용 ㅠㅠ!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.