Html 从

Html 从,html,ruby,regex,if-statement,replace,Html,Ruby,Regex,If Statement,Replace,我有一个带有和标记的HTML文本。我想删除这两个标签之间的所有内容。 我将ruby函数gsub与正则表达式一起使用,但它不起作用 这就是我尝试过的: text = "<!--[if gte mso 9]><xml>\n <w:WordDocument>\n [...] \n</style>\n<![endif]-->" text2 = text.gsub /(?=<!\-\-\[if gte mso 9\]>)(.*?)(

我有一个带有和标记的HTML文本。我想删除这两个标签之间的所有内容。 我将ruby函数gsub与正则表达式一起使用,但它不起作用

这就是我尝试过的:

text = "<!--[if gte mso 9]><xml>\n <w:WordDocument>\n [...] \n</style>\n<![endif]-->"

text2 = text.gsub /(?=<!\-\-\[if gte mso 9\]>)(.*?)(?<=<!\[endif\]\-\->)/, ""
我试过这个基于

我已经尝试过在线正则表达式测试,它似乎是正确的方法,但它不会在我的程序上工作

请帮忙

提前谢谢

尝试此正则表达式/?/m,并对字符串执行gsub。你会得到

??后面是一个积极的外观,与字符串匹配,但不包括在结果中

.*匹配任何字符0次或更多次

?=是一个积极的展望,与预期相符,但不包括在结果中

末尾的m标识符表示匹配多行字符串。由于您使用声明了字符串,因此\n将被解释为新行

本质上,您正在匹配两个标记之间的所有内容

在正则表达式中,/?=.*?,第一个标记使用正向向前看,第二个标记使用正向向后看,需要翻转它们

正向前瞻匹配主表达式后的组,但不将其包含在结果中

“正向查找后面”匹配主表达式前面的组,但不将其包含在结果中

尝试此正则表达式/?/m,并对字符串执行gsub。你会得到

??后面是一个积极的外观,与字符串匹配,但不包括在结果中

.*匹配任何字符0次或更多次

?=是一个积极的展望,与预期相符,但不包括在结果中

末尾的m标识符表示匹配多行字符串。由于您使用声明了字符串,因此\n将被解释为新行

本质上,您正在匹配两个标记之间的所有内容

在正则表达式中,/?=.*?,第一个标记使用正向向前看,第二个标记使用正向向后看,需要翻转它们

正向前瞻匹配主表达式后的组,但不将其包含在结果中

“正向查找后面”匹配主表达式前面的组,但不将其包含在结果中


我想你的意思是。*,不是。0。但你应该像OP一样使用。*?,太棒了!非常感谢你!它马上就解决了!回答得好!如何将其修改为包含在捕获中?我想您的意思是。*,而不是.0。但你应该像OP一样使用。*?,太棒了!非常感谢你!它马上就解决了!回答得好!如何将其修改为包含在捕获中?
text2 = "<!--[if gte mso 9]><![endif]-->"
text2 = ""