編輯:請確認您撥打匹配#匹配或匹配器#嘗試使用組之前找到! SourceJava正則表達式 - 試圖從以某個字符串開頭的行中隔離文本?
我試圖做一些事情很簡單 - 我想從與一個字開頭的行的文本。在這種情況下,這個詞是Location:
。我是從原始的HTML看了那麼感興趣的行實際上是這樣的:
Location: Main Hall
很明顯,我想Main Hall
返回給我,讓我能讀懂我的應用程序的位置。
這是我已經試過:
String t_location = "";
Pattern t_pat = Pattern.compile("^[\\s]+?(?s)Location: (?-s)(.*)$");
Matcher t_match = t_pat.matcher(t_inner_html);
t_location = t_match.group(0);
但我不斷收到錯誤:
java.lang.IllegalStateException: No successful match so far
打破我的正則表達式,這是(我認爲)我這樣做:
^
- 從行首開始讀取
[\\s]+?
- 帶難色預選賽,在該行的開始閱讀的空白,直到我們打別的
(?s)Location: (?-s)
- 文本字符串「的位置:」讀
(.*)$
- 讀取字符(除換行符)直到行尾
這就是我在做的事THINK。我並不擅長Regex,但我試圖按照文檔無濟於事。有人可以幫幫我嗎?
例如來說,字符串t_inner_html
看起來是這樣的:
8/28/2014
Alumni Reunion
Location: Main Hall
<span class="extra-info">
Blah blah blah....
</span>
我有一種感覺,這應該工作,但事實並非如此。 – 2014-08-28 05:09:50
您的輸入文字只是「位置:主廳」這一行,還是以「8/28/2014」開頭的整個塊?如果是後者,那麼你現在正匹配多行而不是單行,而且這是一個有點不同的故事。 – 2014-08-28 05:12:28
是的,它是多行,'t_inner_html'就是我正在看的東西。我試着用'(?m)'標誌來表達你的表情。 – 2014-08-28 05:13:24