javascript - 包含 2 个字符之间的字符串的正则表达式匹配
问题描述
我正在尝试在><
.
我遇到了第一个问题,>
因为它也匹配后续字符。例如。在这个例子中
<a href="https://stackoverflow.com" class="-logo js-gps-track"
data-gps-track="top_nav.click({is_current:false, location:3, destination:8})">
<span class="-img _glyph">Stack Overflow</span>
</a>
我只想匹配Stack Overflow
。我目前已经得到了\>([^\>].*Stack Overflow.*)\<
,但这与第一个>
ie之后的所有内容相匹配
><span class="-img _glyph">Stack Overflow<
任何帮助都会很棒
解决方案
使用 DOMParser 可能会更优雅,并采用textContent
of .-img._glyph
:
const str = `<a href="https://stackoverflow.com" class="-logo js-gps-track"
data-gps-track="top_nav.click({is_current:false, location:3, destination:8})">
<span class="-img _glyph">Stack Overflow</span>
</a>`;
console.log(
new DOMParser().parseFromString(str, 'text/html').querySelector('.-img._glyph').textContent
);
如果您必须使用正则表达式,而不是重复.
(匹配任何内容),在零件的任一侧重复[^<>]
(匹配任何不是 a<
或的内容) ,同时向前和向后查看and :>
Stack Overflow
<
>
(?<=>)[^<>]*Stack Overflow[^<>]*(?=<)
(如果不能使用lookbehind,匹配初始>
并随后捕获所有内容,然后提取捕获组)
推荐阅读
- html - HTML 视口与媒体查询
- python - 具有额外 4 个密集层的模型的训练时间与没有的相同
- android - 使用 Kotlin 在 android 中渲染 PDF
- javascript - 如何将字符串日期时间范围转换为 javascript 日期对象?
- javascript - 运行测试后如何修复返回“无法读取‘左’的空值’的二叉树?
- php - 带有构造函数参数的 PHP 依赖注入使测试变得困难
- javascript - Vim Omni Completion 在 JS const 上失败并让声明
- spring - Spring-boot:从 URL 下载谷歌表格
- php - SQL 查询将一个列中的数据与另一列中的不同数据相加。以整数形式存储在表中的不同,名称在另一个表中。如何输出真实姓名?
- angular - 如何在第二个浏览器选项卡中远程刷新 Angular 7 应用程序