首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java正则表达式:忽略所有字符,直到某些字符。正则表达式

Java正则表达式:忽略所有字符,直到某些字符。正则表达式
EN

Stack Overflow用户
提问于 2013-06-06 00:23:04
回答 1查看 819关注 0票数 1

我正在写一个java程序,从网站自动下载PDF。在浏览器中,帐户是从菜单中选择的,但是,该菜单的格式为# storenumber - accountnumber (例如# 1234 - 987654321)。我没有门店号码的权限。

java可以忽略-之前的所有字符吗?如果可以,你可以写出这个表达式吗?

我将它与selenium和firefox webdriver一起使用,这使得简单地分离和保存字符串变得更加困难。这意味着我的内存中没有字符串,它来自浏览器。

这就是如果我有店号的话我的代码应该是什么样子的(但我没有)。

new Select(driver.findElement(By.id("ctl00_main_ddlAssocAccountNumbers"))).selectByVisibleText(storeNum + " - " + accountNum);

如有任何其他解决方案或建议,欢迎光临。

谢谢,托比尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-06 00:30:33

如果格式# storenumber - accountnumber已修复,最好使用split()

代码语言:javascript
复制
accountNum = accountNum.split(" - ")[1];

编辑:

根据您更新的帖子和评论,我认为您希望在使用Selenium的selectByVisibleText()方法时只对用户帐号进行部分匹配,该方法不接受任何通配符或正则表达式。

但下面是如何通过使用contains()进行子字符串匹配来实现此行为的

代码语言:javascript
复制
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
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16945050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档