2009-07-16 2 views
1

없이 파일 이름을 추출합니다. XML정규 표현식은 나는 다음과 같은 문자열에서 문자열을 추출하는 정규 표현식을 작성하는 방법에 도움을 찾고 문자 후 확장

에 ...

AMMA - TEstFileName 파일의

기본적으로, 전에 첫 번째 "#"모든 것을 제거. 또한 ".xml"파일 확장명을 제거합니다.

내가 방금 정규식을 시작하는 데 도움이되는 모든 도움을 받으실 수 있습니다. 이것은 .NET 정규식 API를 지원하는 Nintex 워크 플로 작업에서 사용됩니다.

답변

1

찾고있는 문자열이 첫 번째 그룹에 속합니다. C#으로

/#(.+?)\.xml$/ 

String extractFilename(String s) 
{ 
    Regex r = new Regex(@"#(?<filename>.+?)\.xml$", RegexOptions.Compiled); 
    return r.Match(s).Result("${filename}"); 
} 

수정 : 연장 라인 규정의 추가 단부 # 탈출 제거하고, 추가 C# 예

+0

모두의 빠른 답변, 감사합니다. Nintex는 워크 플로우 액션에 직접 코드를 작성하여 그룹 1을 만들 수 없으므로 위의 예제를 호출하여 작업을 수행하는 웹 서비스를 작성했습니다. –

3

앵커 문자열의 끝에 패턴 :

/#(.+)\.xml$/ 
1

exte xml 이외의 다른 언어

+1

그 끝은 \. [^ \.] + $가되어야합니다. 그래서 file..ext는 마지막 .ext –

+0

네 .. 그게 맞아요. –

0

편집 : 분명히 이것은 정규식이 아니지만 정규식보다 빠르기 때문에 포함 시켰습니다.

Path.GetFileNameWithoutExtension(s.Substring(s.IndexOf('#') + 1));