gpt4 book ai didi

ruby - 查找直到字符的正则表达式?

转载 作者:太空宇宙 更新时间:2023-11-03 16:03:09 25 4
gpt4 key购买 nike

我有这两个 HTML 字符串:

a="<div> foo: <span>bar</span> </div>"
b="<div> foo: bar <br> </div>"

我想找到foo: bar来自每个字符串。

我想做的是从单词“foo”中查找,直到遇到“<”字符。

我可以用正则表达式做到这一点:

foo([^(<)]+)

这只能从字符串 b 中找到“foo: bar”但不是来自字符串 a因为<span>标签挡路了。所以我想编写正则表达式来查看 foo直到找到 <字符忽略 <span>标签。

这些只是它必须处理的一些字符串,因此它必须像状态一样工作,即我不能开始删除之前或之后的标签等。

基本上我需要知道的是如何找到字符串中的所有字符,直到我遇到某个字符,除非该字符后跟一组指定的字符,即查找直到 <但如果<后面是span>然后寻找下一个< .

有人知道怎么做吗?

最佳答案

虽然使用正则表达式从 HTML 中获取内容通常很糟糕,但您可以通过以下方式解决问题:

foo, bar = string.gsub(/<.*?>/, '').strip.split

编辑:好吧,那么您可能想要查看正则表达式的负面展望:(?!regpattern)

string[/(foo.*)<((?!span|\/span))/,1]
# match foo followed by all character until < unless the character after that is /span or span

关于ruby - 查找直到字符的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20244111/

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