簡體   English   中英

Java正則表達式:忽略所有字符直到某個字符。 正則表達式

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM