好的,快速的問題。我在Java上是一個新手,我有一個任務,我必須從頁面的標題標記中獲取一個人的姓名。我知道我的正則表達式,但我不能(或不知道如何)逃避某些角色。java正則表達式解析部分標題標記
例
<title>Mr. Somebody | Department in which he's in</title>
所以,基本上我需要一個正則表達式,將讓我的「有人先生」。我試過了:
Pattern pat = Pattern.compile("<title>(.+?)|");
Matcher mat = pat.matcher(data);
boolean found = false;
while (!found && mat.find()) {
name = mat.group(0);
found = true;
}
System.out.println("Found a name : " + name);
我的問題是,無論我嘗試過什麼,我能得到的最多的是第一個字符。你認爲使用indexOf和substrings更簡單的方法會更好,還是正則表達式仍然可行?
我知道通常regexps不適合解析html標籤,但我正在考慮更多的字符串搜索,因爲我對整個標籤(或其他可能包含的標籤)不感興趣, 。
任何形式的幫助是極大的讚賞:)
爲了說清楚一點,你必須使用雙反斜槓(就像@Jerry所做的那樣),因爲你需要編譯欄來逃避角色,但是一個反斜槓是不夠的,因爲你是在一個字符串中,那麼你需要轉義字符串反斜槓以獲得正則表達式轉義。有關於正則表達式的一些非常好的和深入的信息在這裏http://www.regular-expressions.info/java.html –
@CaioToOn對。謝謝闡述! – Jerry
感謝你們,我確實想逃避('\ |'),但顯然它必須逃避Java的逃跑。 謝謝,你真的很有幫助! :D – Sabin