2013-10-21 4 views
2

C : \ fakepath \ CI_Logo.jpg과 같은 파일 이름이 있습니다. CI_Logo.jpg를 가져 오는 정규식이 필요합니다. 다음은 Regex- 마지막 ''뒤에 파일 이름 가져 오기

는, 당신은 어떤 다른이를 수정할 수 있습니다

var regex="\\[^\\]+$"; 
var fileGet=$('input.clsFile').val(); 
var fileName=fileGet.match(regex); 
alert(fileName); 
+1

? 귀하의 정규식 괜찮을 것 같습니다. 너는 어떻게 사용하고 있니? '[^ \\] + $'을 사용하면됩니다. –

+0

@RohitJain 어쩌면 그는 결과에 백 슬래시를 원하지 않을 수 있습니다. 이것은'[^ \\] + $'... – HamZa

+3

을 사용해야합니다. "정규식"을 요구하는 것은 말이되지 않습니다. BRE와 ERE 및 PRE와 다른 도구들이 모두 사용합니다. "정규식"을 요구하는 대신, 사용하고자하는 도구에 대한 솔루션을 요청하십시오. RE는 전혀 적합하지 않을 수도 있습니다. 문자열 또는 문자 검색 및 대체가 더 적합 할 수 있습니다. –

답변

1

미니멀 방법 : 당신이 사용하는 어떤 언어 demo

([\w\d_\.]+\.[\w\d]+)[^\\] 
+0

이것은'something :'과 실제로 일치해야하는'C : \ fakepath \ CI_Logo.jpg \ something'의'CI_Logo.jpg'와 일치합니다. 폴더에는 도트가 포함될 수 있으며 파일 이름에 확장명이 반드시 포함되지는 않습니다. – gehho

1

를 사용하여 자바에서이

String oldFileName = "slashed file name"; 
String[] fileNameWithPath = oldFileName.split("\\\\"); 
int pathLength = fileNameWithPath.length; 
oldFileName = fileNameWithPath[pathLength-1]; 

, 내 생각 내 자바 스크립트 코드입니다 .. \\[^\\]+$으로 시도하지만, 운동을하지 않았다 langs.

편집 : 있는지 확인합니다 로 분할 "\\\\" - 네 슬래시 ​​

+0

과 함께 경로 이름을 쓰는 것을 고려 했습니까? 예, 분할이이 문제에 대한 최상의 해결책이되어야합니다 ... 그러나이 코드는 개선 될 수 있습니다. 파일 이름이 항상 배열의 마지막 위치에 있다는 것을 알고 있기 때문에 우리는 단지 그것을 에워 줘야합니다 :) – Alexandre

+0

예, 이것은 최적화 될 수 있지만 정교한 답을 제공합니다. – Akshay

+1

또는 .NET에서 : Path.GetFilename (...) – gehho

관련 문제