2011-02-23 4 views
2

C#에서이 정규식 추출기 코드를 발견했습니다. 누군가가 어떻게 작동하는지 말할 수 있습니까? 어떻게 Java로 동등 물을 작성합니까?C# regex 코드를 Java로 변환

// extract songtitle from metadata header. 
// Trim was needed, because some stations don't trim the songtitle 
fileName = 
    Regex.Match(metadataHeader, 
     "(StreamTitle=')(.*)(';StreamUrl)").Groups[2].Value.Trim(); 

답변

7

원하는 내용이어야합니다.

이는 그러한 "StreamTitle = 'myTitle이라는'; StreamUrl"와 같은 문자열에서 "myTitle이라는를"끌어
// Create the Regex pattern 
Pattern p = Pattern.compile("(StreamTitle=')(.*)(';StreamUrl)"); 
// Create a matcher that matches the pattern against your input 
Matcher m = p.matcher(metadataHeader); 
// if we found a match 
if (m.find()) { 
    // the filename is the second group. (The `(.*)` part) 
    filename = m.group(2); 
} 
1

.

() 연산자는 일치 그룹을 정의합니다. 정규 표현식에 3이 있습니다. 두 번째 문자열은 관심있는 문자열을 포함하고 Groups [2] .Value에서 가져옵니다.

거기에 몇 가지 아주 좋은 정규식 디자이너가 있습니다. 내가 사용하는 소프트웨어는 Rad Software의 정규 표현식 디자이너 (www.radsoftware.com.au)입니다. 이것은 (그리고 C# RegEx 's를 사용하는) 이런 것들을 알아 내는데 매우 유용합니다.