[英]Java regular expressions: ignore all characters until certain character. regex
我正在编写一个java程序,可以从网站上自动下载PDF。 我的程序读取excel文件,并为excel文件中的每个帐号下载PDF。 在浏览器中,从菜单中选择帐户,但是,菜单的格式为#storenumber - accountnumber(例如#1234 - 987654321)。 我无法访问商店号码。 一个简单的解决方案就是忽略前x个字符,但是一些商店号码的长度不同,所以这不起作用。
java是否有可能忽略 - 之前的所有字符,如果是,你可以写出这个表达式。
我正在使用它与selenium和firefox webdriver,使得单独分离和保存字符串变得更加困难。 意思是我没有内存中的字符串,它来自浏览器。
这是我的代码看起来像我有商店号码(但我不)。
new Select(driver.findElement(By.id("ctl00_main_ddlAssocAccountNumbers"))).selectByVisibleText(storeNum + " - " + accountNum);
任何其他解决方案或建议表示赞赏。
谢谢,托比尔
如果格式# storenumber - accountnumber
是固定的,请使用split()
accountNum = accountNum.split(" - ")[1];
编辑:
根据您更新的帖子和评论,我认为您希望在使用Selenium的selectByVisibleText()
方法时仅使用用户帐号进行部分匹配,该方法不接受任何通配符或正则表达式。
但是这里是通过使用contains()
进行子字符串匹配来实现此行为的方法:
Select select = new Select(driver.findElement(
By.id("ctl00_main_ddlAssocAccountNumbers")));
List<WebElement> listOfOptions = select.getOptions();
for (WebElement option : listOfOptions) {
String storeAndAcctNum = option.getText();
if (storeAndAcctNum.contains(accountNum)) { // if sub-string matches
select.selectByVisibleText(storeAndAcctNum); // fire select as usual
break; // out of the loop
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.