Регулярное выражение не соответствует строке в коде Scala - PullRequest
0 голосов
/ 07 июня 2019

Это регулярное выражение не работает для указанной ниже строки, так как в приведенной ниже строке есть «href». Я использую scala 2.11.11

val p1 = Pattern.compile("href=\"(.*?)\"")
    val m1 = p1.matcher(bodyString)
    while(m1.find()){
        println(m1.group(1))
    } 

Строка:

"<p>Is this person trying to advertise a sound card? They dont seem to be answering my questions either </p><p><br /></p><p><a href=\"https://discussion.xyz.com/thread/2524?answerId&#61;25022&amp;page&#61;1\" target=\"_blank\" rel=\"nofollow opener referrer\">https://discussion.xyz.com/thread/250274?answerId&#61;250722&amp;page&#61;1</a></p>"

Пожалуйста, предложите, если есть другой способ сделать это.

Спасибо

1 Ответ

0 голосов
/ 07 июня 2019

Ваше выражение выглядит нормально, во входной строке есть только две обратные косые черты, которые могут быть включены, возможно, в такой форме:

href=\\\"(.*?)\\\"

Демо 1

или, если бы мы искали https паттернов, мы могли бы упростить его до:

\\"https?:(.*?)\\"

Демо 2

и наша желаемая ссылка находится в группе захвата #1.

RegEx

Если это выражение не нужно и вы хотите изменить его, перейдите по этой ссылке на regex101.com .

RegEx Circuit

jex.im визуализирует регулярные выражения:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...