gpt4 book ai didi

ruby - 给定一串 HTML,查找 float < > 的最佳方法是什么

转载 作者:行者123 更新时间:2023-12-04 16:21:09 27 4
gpt4 key购买 nike

给定一个 HTML 字符串:

myhtml = "<title> my title </title>"

如何编写返回 true 的函数如果有 float /未转义 <> ,连同冒犯性的角色本身?例子:
myhtml = "<title> my title </title>"
hasFloating(myhtml) => false

myhtml = "<title> < </title>"
hasFloating(myhtml) => true, <

myhtml = "<title> > </title>"
hasFloating(myhtml) => true, >

请记住,此字符串可能是包含多个元素的一大段 HTML 代码。我也可以用一个函数检查是否存在未转义的字符,第二个函数返回冒犯者字符本身

编辑:为了记录,我也在使用 mechanize这个项目中的 gem

最佳答案

如果您只想检查是否有未关闭的尖括号,则不需要花哨的 gem 。
您可以使用 StringScanner .

require 'strscan'

def has_floating(html)
open_angle = 0
scanner = StringScanner.new(html)
while scanner.scan(/<|>/)
case scanner.matched
when '<'
return [true, '<'] if open_angle == 1
open_angle += 1
when '>'
return [true, '>'] if open_angle == 0
open_angle -= 1
end
scanner.scan_until(/[^<>]+/)
end
return false
end

myhtml = "<title> my title </title>"
puts has_floating(myhtml).inspect
#=> false

myhtml = "<title> < </title>"
puts has_floating(myhtml).inspect
#=> [true, "<"]

myhtml = "<title> > </title>"
puts has_floating(myhtml).inspect
#=> [true, ">"]

关于ruby - 给定一串 HTML,查找 float < > 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58143434/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com