在我正在编写的一个小脚本中,我向 Web 服务发出一个 POST 请求并接收一个 HTML 文档作为响应。除了单个textarea. 这textarea是textarea页面中唯一的,它有一个name我提前知道的特别之处。我想抓取该文本而不用担心文档中的任何其他内容。目前我正在使用正则表达式来获取正确的行,然后删除标签,但我觉得可能有更好的方法。这是文档的样子:<html><body><form name="query" action="http://www.example.net/action.php" method="post"> <textarea type="text" name="nameiknow"/>The text I want</textarea> <div id="button"> <input type="submit" value="Submit" /> </div></form></body></html>这是我目前获取文本的方式:s := string(body)// Gets the line I wantr, _ := regexp.Compile("<textarea.*name=(\"|')nameiknow(\"|').*textarea>")s = r.FindString(s)// Deletes the tagsr, _ = regexp.Compile("<[^>]*>")s = r.ReplaceAllString(s, "")我认为在这种情况下使用完整的 HTML 解析器可能有点太多了,这就是我朝这个方向前进的原因,尽管我知道那里有更好的东西。我感谢您的任何建议。
2 回答
桃花长相依
TA贡献1860条经验 获得超8个赞
虽然这不是使用正则表达式解析 HTML的最佳实践。但如你所愿,这里是:
(<textarea\b[^>]*\bname\s*=\s*(?:\"|')\s*nameiknow\s*(?:\"|')[^<]*<\/textarea>)
- 2 回答
- 0 关注
- 201 浏览
添加回答
举报
0/150
提交
取消