gpt4 book ai didi

javascript - 使正则表达式在内容中带有换行符的标签内查找文本 - JavaScript

转载 作者:行者123 更新时间:2023-11-30 12:37:12 29 4
gpt4 key购买 nike

感谢你来到这里,所以我得到了这个小代码:

while(/\[del\](.*?)\[\/del\]/i.exec(text) != null)
text = text.replace(/\[del\](.*?)\[\/del\]/i, "<s>$1</s>");

但是当有换行符时,它不会匹配。示例:

[del]asdsadasda
asdadsadsadsadasdsadsa[/del] - this won't be matched

我是正则表达式的新手,所以我做错了什么?

最佳答案

默认情况下,在许多正则表达式中,点与换行符不匹配。 Javascript 没有单行修饰符 (?s) 来改变这种行为。匹配所有字符(包括换行符)的最新技巧是使用 [\s\S] 匹配所有空白字符和所有非空白字符

作为旁注,您不需要将 replace 方法放在 while 循环中,因为 replace 只会执行如果找到东西,请更换。如果你想替换所有出现的地方,只需在模式末尾添加 g 命令。

text = text.replace(/\[del\]([\s\S]*?)\[\/del\]/ig, "<s>$1</s>");

请注意,对于这个特定的替换,由于您的 del 标记似乎没有参数,您可以简单地写:

text = text.replace(/\[(\/?)del\]/ig, "<$1s>");

(它避免了很多工作)

关于javascript - 使正则表达式在内容中带有换行符的标签内查找文本 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25715729/

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