2017-12-18 212 views
1

有人能幫助我解決以下問題: 我發現頁面上的元素,我一直在尋找與保留括號內的文字只有

WebElement h2 = ol.findElement(By.xpath("../h2" + h2current)); 
     String h2currentShorted = h2.getText(); 
     String h2currentShorted2 = h2currentShorted.substring(24); 

現在,原文是幾種語言,因此不同大小(字符數)。示例:

Tidligere stillinger (1. Jul 2016 - 1. Jul 2017) 
Vergangene Gesamtwertung (1. Jul 2016 - 1. Jul 2017) 
Previous standings (1. Jul 2016 - 1. Jul 2017) 

以上是三種不同語言的文本。我怎樣才能提取括號內的文本,而不是別的。 使用上面的代碼,我刪除了不必要的字符,但是如果有一種解決方案適用於所有語言 - 只需拾取括號內的文本? 預先感謝您

回答

2

正如其他人所說,使用正則表達式,但考慮使用組更優雅的方式。

Pattern p = Pattern.compile(".*\\((.*)\\).*"); 
Matter m = p.matcher(h2.getText()); 
String s = m.group(1); 

變量s將只包含括號內的文本。

+0

這是一個完美的解決方案。謝謝@Bastian Schoettle – Zoran

+0

很可能我在輸入測試時出錯(第一行顯示錯誤),我得到這個錯誤:**非法轉義字符** 請協助並感謝你 – Zoran

+0

對不起,在java中有一個必須避開反斜槓。我忘記了輸入代碼時,我已經相應地更新了答案。 –

2

使用像

\(.*\) 

或使用String.indexOf一個正則表達式來確定的(和)的位置。

+0

正則表達式是解決方案。謝謝指數不會工作,因爲不同語言的長度不一樣 – Zoran