[英]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.