2013-11-01 3 views
1

"xyz"가 맨 앞에 있고 첫 번째 밑줄 뒤에 2가 오는 디렉토리의 모든 파일을 나열하고 싶습니다.R - 정규 표현

예를 들어 xyzfjd_2_34_1.png, xyz-39_2dog.jpg이 작동하는 반면 xyzdog_3_dog.png은 작동하지 않습니다.

나는

답변

3

은 밑줄 일치하지 않고 파일 이름을 수행 ...

나는 심지어 내가 뭘하는지 모르는 주로하기 때문에, 분명히 잘못된 것입니다
list.files(dir, pattern="^xyz*_2*"); 

를 시도? 나는 아니오라고 추측하고있다.

나는 어떤 문자에 대해서 *을 해석하고 있다고 생각합니다. 대신 .은 모든 문자입니다. *은 "0 번 이상"입니다. 따라서 패턴 ^xyz*_2*xy_xyzzzz_222과 일치 할 수 있습니다. xyz1_2과 일치하지 않습니다. 파일 이름

  • xyz
  • [^_]* 문자의 조합의

    list.files(dir, pattern = "^xyz[^_]*_2") 
    
    • ^ 시작 _없는 (빈 문자열 포함)
    • _2, 밑줄 : 시도

      2 명이 뒤따 랐습니다.

    패턴의 일부만 파일 이름과 일치해야하기 때문에 나머지 이름은 걱정하지 않아도됩니다.