javascript - 捕获组不能按预期工作

标签 javascript

var content="xx<br>xxxx <br>@yyy<span class='black'></span>yyy   yyy y ";
var rgx=/(.*(<br>))(.*<span class='black'><\/span>.*?\s)/gmi; 
var result = content.replace(rgx,"$3");
alert(result);

jsfiddle

我需要得到这个 ->“@yyy<span class='black'></span>yyy”,但我得到这个 ->“@yyy<span class='black'></span>yyy yyy y”。为什么?

当我应用这个正则表达式时 -> /(.*(<br>))(.*<span class='black'><\/span>.*?\s)/这似乎按预期工作并且match this -> "xx<br>xxxx <br>@yyy<span class='black'></span>yyy "。

结果我只想得到这个“@yyy<span class='black'></span>yyy”。

最佳答案

var txt = "xx<br>xxxx <br>@yyy<span class='black'></span>yyy   yyy y ";
var res = (/<br>([^<]+<span class='black'><\/span>\S+\s)/gmi.exec(txt)||'')[1];
console.log(res); // "@yyy<span class='black'></span>yyy " // or undefined if not found

回答您的“为什么我在使用 时得到 ...yyy yyy y...*?\s - 好吧,因为这正是.*?\s 的作用:
获取任何字符零次或多次,包括最后一个空格:“yyy yyy y "

关于javascript - 捕获组不能按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48268332/

相关文章:

javascript - 显式设置 CouchDB 文档键

javascript - 试图了解函数回调的工作原理

javascript - 我想在不使用任何按钮的情况下显示两个数字的加法

javascript - 重新访问使用 howler.js 库的页面时 Chrome 崩溃

javascript - 如何使用javascript获取url中的特定字符并将其存储到id?

javascript - 如何将数据附加到 fetch() 请求并通过响应取回数据?

javascript - 在 Javascript 中将 slugs 列表转换为 json

javascript - Firebase 在其他文件中调用之前未初始化

javascript - AngularJS:使用 DTO 模型

javascript - vueJs中获取图片大小mounted