2011-02-23 69 views
2

我在C#中找到了這個正則表達式提取器代碼。 有人能告訴我這是如何工作的,以及如何在Java中編寫相應的代碼?將C#正則表達式代碼轉換爲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

這應該是你想要的。

// 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

它從諸如「StreamTitle ='MyTitle'; StreamUrl」之類的字符串中提取「MyTitle」。

()運算符定義匹配組,在您的正則表達式中有3個。第二個包含感興趣的字符串,並且在組[2] .Value中獲得。

這裏有幾個非常好的正則表達式設計師。我使用的是Rad Software的正則表達式設計器(www.radsoftware.com.au)。這對於計算這樣的東西非常有用(它使用C#RegEx's)。

相關問題