gpt4 book ai didi

javascript - 正则表达式查找单词(使用单词边界),其中单词包含破折号

转载 作者:行者123 更新时间:2023-11-30 18:52:33 26 4
gpt4 key购买 nike

给定以下正则表达式:

\b(MyString|MyString-破折号)\b

和文本:

字符串我的字符串MyString-破折号

对文本运行匹配永远不会找到第二个东西 (MyString-Dash) 的匹配项,因为“-”(破折号)字符不是单词边界字符。以下 javascript 始终将“MyString,MyString”输出到“匹配”div(我想找到 MyString 和 MyString-Dash 作为不同的匹配项)。如何定义匹配 MyString 和 MyString-Dash 的模式?

<html>
<body>
<h1>Content</h1>
<div id="content">
AString
MyString
MyString-Dash
</div>
<br>
<h1>Matches (expecting MyString,MyString-Dash)</h1>
<div id="matches"></div>
</body>
<script>
var content = document.getElementById('content');
var matchesDiv = document.getElementById('matches');
var pattern = '\\b(MyString|MyString-Dash)\\b';
var matches = content.innerHTML.match(pattern);
matchesDiv.innerHTML = matches;
</script>
</html>

最佳答案

交换你的匹配顺序,使最长的最先出现:

content.innerHTML.match(/\b(MyString-Dash|MyString)\b/)

我相信正则表达式是从左到右匹配的。刚刚在 Firebug 中对此进行了测试,它有效。

我还会将该模式 var 更改为正则表达式文字,从 '\\b(MyString-Dash|MyString)\\b'/\b(MyString-Dash |MyString)\b/g

你需要/g 在那里,因为这将使正则表达式返回所有匹配项,而不仅仅是第一个匹配项。

关于javascript - 正则表达式查找单词(使用单词边界),其中单词包含破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3313662/

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