Я знаю, что были варианты вопросов ответили здесьJava не Regex подбирая несколько вхождений строки
- Match multiline text using regular expression
- Split text with Java-Regex in pairs with Regex over several lines
- Match multiline text using regular expression
Я попытался пройти через решения и придумать регулярное выражение для моих нужд. У меня есть строка текста по нескольким строкам, у которых нет фиксированного начального местоположения или конечного местоположения для определенной строки.
<a name='bill_pay' href='javascript:goto('billpay');' class='fsdnav-top-menu-item'>Bill Pay <span class='fsdnav-ada-hidden'>link and menu. Press enter to navigate to this link. Press control + space to open submenu.
To move through submenu items press tab and then press up or down arrow.</span> </a>
<a name='bill_pay' href='javascript:goto('findmyinfo');' class='fsdnav-top-menu-item'>
Bill Pay <span class='fsdnav-ada-hidden'>link and menu. Press enter to navigate to this link. Press control + space to open submenu.
To move through submenu items press tab and then press up or down arrow.</span> </a>
<a name='bill_pay' href='#' onClick='OOLPopUp('/myaccounts/brain/redirect.go?target=findmyroutingnumber','ool','currentPage');return false;' class='fsdnav-top-menu-item'>
Bill Pay <span class='fsdnav-ada-hidden'>link and menu. Press enter to navigate to this link. Press control + space to open submenu.
To move through submenu items press tab and then press up or down arrow.</span> </a>
Я хотел бы, чтобы извлечь следующее содержимое из javascript:goto("link")
(то, что когда-либо связать значение представляет) Есть несколько таких явлений в приведенном выше регулярном выражении, но регулярное выражение, которое я использую возвращаю только один случай. Я хотел бы вернуть все это. Мой блок кода приведен ниже
private static final Pattern PATTERN_WITH_ASCII_QUOTES =
Pattern.compile("^.*goto\\('(\\w+)'\\).*",
Pattern.MULTILINE|Pattern.DOTALL);
// "str" is the string representation of the text above.
Matcher m = PATTERN_WITH_ASCII_QUOTES.matcher(str);
while (m.find()) {
System.out.println(m.group(1));
}
Полученный выход всегда findmyinfo
и больше ничего.
UPDATE - Нужные выходы
billpay (from javascript:goto('billpay');)
findmyinfo (from javascript:goto('findmyinfo');)
Я также хотел бы, чтобы извлечь
/myaccounts/brain/redirect.go?target=findmyroutingnumber','ool','currentPage from OOLPopUp('/myaccounts/brain/redirect.go?target=findmyroutingnumber','ool','currentPage')
Что ваш ожидаемый результат? –