gpt4 book ai didi

javascript - 如何使用正则表达式排除 JavaScript 中的单词?

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

我刚开始使用正则表达式,我想知道是否可以排除一个词。我有以下数据列表:

cat.text"
cat.doc"
dog.txt"
dog.text"
frog.txt"
dog.text"
dog. text"
cat. text"
cat. text "

从这些数据中,我只想获取 .text"(或 .text",或 .text" 等。 ) 部分,但我不想包含任何包含 cat 的项目中的 .text"。到目前为止,我能够获得所有 .text" 但不确定如何排除带有 cat 字的那些。到目前为止我有 \.\s *text\s*" 它得到

cat.text"  <--
cat.doc"
dog.txt"
dog.text" <--
frog.txt"
dog.text" <--
dog. text" <--
cat. text" <--
cat. text " <--

有什么帮助吗?谢谢!

最佳答案

I am able to get all the .text" but not sure how to exclude the ones with "cat" word.

您可以使用以下正则表达式:

/^(?!cat).*\.\s*text/m

如果您希望匹配不考虑字母大小写,您可以在末尾添加不区分大小写的 i 标志(例如,mi)。

解释:

^       // assert position at start of a line (with the multiline 'm' flag)
(?!cat) // negative lookahead to prevent matching if line starts with cat
.* // match any number of characters excluding linebreak characters
\. // match "." literally
\s* // match any number of whitespace characters
text // match "text" literally
// flags:
// "m" - multiline, matches on a per line basis)

Regex101


编辑:如果你想匹配后缀标签和结束引号,你可以使用这个:

/^(?!cat).*(\.\s*text\s*\")/m

Regex101

注意Regex101中右侧的匹配信息。假设正确使用字符串/正则表达式方法,() 捕获输出匹配。

如何使用 String.prototype.match 提取捕获组的示例:

var strArr = [ 'cat.text"',
'cat.doc"',
'dog.txt"',
'dog.text"',
'frog.txt"',
'dog.text"',
'dog. text"',
'cat. text"',
'cat. text "',
'dogtext',
'textexttext'];

var re = /^(?!cat).*(\.\s*text\s*\")/mi;

var testDiv = document.querySelector('.testString');
var resultDiv = document.querySelector('.resultString');

strArr.forEach(function(str) {
testDiv.insertAdjacentHTML('beforeend', str + '<br>');
if (str.match(re))
resultDiv.insertAdjacentHTML('beforeend', str.match(re)[1] + '<br>');
else resultDiv.insertAdjacentHTML('beforeend', '<br>');
});
.testString {
display: inline-block;
}

.resultString {
display: inline-block;
position: relative;
left: 10%;
}
<div class='testString'></div>
<div class='resultString'></div>

我在使用 string.prototype.match 时删除了 g 标志,因为您想要捕获的组。使用 g 标志返回整个匹配字符串。

关于javascript - 如何使用正则表达式排除 JavaScript 中的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37175778/

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