正则表达式忽略HTML标记

时间:2016-09-12 15:21:49

标签: regex

在这种情况下,我想通过正则表达式捕获dgdhyt2464t6ubvf。请你帮帮我。非常感谢!

<br />For API key "fnt56urkehicdvd", use API key secret:
<br />
<br />  dgdhyt2464t6ubvf
<br />
<br />Note that it's normal to

到目前为止,我有这个,但它没有超越<br />

use API key secret:[\s]+</br>*(.*)[\s]+\sNote

2 个答案:

答案 0 :(得分:0)

你可以这样做:

public static void main(String[] args)
{
    String test = "<br />For API key \"fnt56urkehicdvd\", use API key secret:" +
        "<br /><br />  dgdhyt2464t6ubvf<br /><br />Note that it's normal to";
    String[] temp = test.split("\\<br /\\>");
    System.out.println(temp[3].trim());
}

输出:

  

dgdhyt2464t6ubvf

答案 1 :(得分:0)

你的正则表达式中有错误。

  1. *之后的</br>仅使>成为可选项。我的猜测是你希望整个</br>是可选的。
  2. </br>应为<br />。文本中没有</br>,因此正则表达式找不到任何内容。顺便说一下,<br */>更好,因为空间不是必需的。
  3. 由于(.*)贪婪,它会匹配从此处到文本中 last “Note”的所有内容。我确定那不是你想要的。
  4. \sNote会匹配以空格开头的单词“Note”,但不会匹配(如示例中)单词“Note” not 前面的空格。删除\s
  5. 只有当你纠正所有这些错误时,正则表达式才能正常工作。请注意评论中的免责声明。