使用Regex匹配HTML中的特定标记

时间:2016-01-28 18:37:20

标签: java regex

我想用Regex从HTML表单中提取令牌。每次加载页面时,令牌都会更改。

<input type="hidden" name="lt" value="LT-24-EskCKFJ4NghflvpXkuveCdZ1VvWPLi" />

我想隔离这个隐藏输入的值。

我找到了http://regexr.com/,我取得了一些进展。 我现在的正则表达式是#34;([a-zA-Z0-9 \ - ] *)?&#34;它将所有内容隔离在引号内。

我正在使用Java。在向服务器发出GET请求后,整个HTML页面都以字符串形式提供给我。我需要LT令牌重新发布。

有没有办法专门隔离LT令牌?

1 个答案:

答案 0 :(得分:0)

要确保获得正确的元素,即使HTML稍有不同,也可以使用此正则表达式。 (没有外观,因为我们正在使用JS。)

\sname="lt"\s+(?:.*?\s+)?value="([^"]+)"

它确保即使name属性和value属性之间存在某些内容,您仍然匹配。它还考虑到可能有多个空格分隔符。但是,name属性必须在value属性之前才能工作。

Example here

var string = '<input type="hidden" name="lt" value="LT-24-EskCKFJ4NghflvpXkuveCdZ1VvWPLi" />',
    text = /\sname="lt"\s+(?:.*?\s+)?value="([^"]+)"/.exec(string)[1];

document.getElementsByTagName("p")[0].innerHTML = text;