gpt4 book ai didi

Javascript Regex 只替换第一次匹配出现

转载 作者:行者123 更新时间:2023-11-30 08:01:53 25 4
gpt4 key购买 nike

我正在使用正则表达式将 wiki 标记代码基本转换为可复制粘贴的纯文本,我正在使用 javascript 来完成这项工作。

但是,javascript 的正则表达式引擎的行为与我以前使用的引擎以及我每天使用的 Notepad++ 中的正则表达式有很大不同。

例如-给定一个测试字符串:

==Section Header==
===Subsection 1===
# Content begins here.
## Content continues here.

我想结束:

Section Header
Subsection 1
# Content begins here.
## Content continues here.

简单地删除所有等号。

我从正则表达式设置开始:

var reg_titles = /(^)(=+)(.+)(=+)/

此正则表达式搜索以一个或多个等号开头的行以及另一组一个或多个等号。 Rubular 显示它准确匹配我的行,并且不会在 contet 中间捕获等号。 http://www.rubular.com/r/46PrkPx8OB

根据正则替换字符串的代码

var lines = $('.tb_in').val().split('\n'); //use jquery to grab text in a textarea, and split into an array of lines based on the \n 
for(var i = 0;i < lines.length;i++){
line_temp = lines[i].replace(reg_titles, "");
lines[i] = line_temp; //replace line with temp
}
$('.tb_out').val(lines.join("\n")); //rejoin and print result

不幸的是,我的结果是:

Section Header==
Subsection 1===
# Content begins here.
## Content continues here.

我不明白为什么正则表达式替换函数在找到多个匹配项时似乎只替换它找到的第一个实例,而不是所有实例。

即使我的正则表达式更新为: var reg_titles =/(={2,})/

“找到任意两个或更多等于”,输出仍然相同。它进行一次替换并忽略所有其他匹配项。

没有一个正则表达式执行器对我来说是这样的。多次运行相同的替换没有任何效果。

关于如何让我的字符串替换函数替换匹配的正则表达式的所有实例而不仅仅是第一个实例的任何建议?

最佳答案

^=+|=+$

你可以使用这个。不要忘记添加 gm 标志。替换为 ``。参见演示。

http://regex101.com/r/nA6hN9/28

关于Javascript Regex 只替换第一次匹配出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26105837/

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