2017-12-18 208 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