![](/img/trans.png)
[英]Exclude some characters from word boundary in javascript regular expressions
[英]How to exclude a word with JavaScript using regular expressions?
我是新的使用正则表达式,我想知道是否可以排除一个单词。 我有以下数据列表:
cat.text"
cat.doc"
dog.txt"
dog.text"
frog.txt"
dog.text"
dog. text"
cat. text"
cat. text "
从这个数据,我想只得到.text"
(或者. text "
或.text "
等)的一部分,但我不希望包括.text"
从包含任何项目cat
。 到目前为止,我能够得到所有的.text"
但不知道如何用cat
word排除那些。我到目前为止\\.\\s*text\\s*"
并且它得到了
cat.text" <--
cat.doc"
dog.txt"
dog.text" <--
frog.txt"
dog.text" <--
dog. text" <--
cat. text" <--
cat. text " <--
有帮助吗? 谢谢!
我能够得到所有的.text“但不知道如何排除那些带有”cat“字的那些。
您可以使用以下正则表达式:
/^(?!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)
编辑:如果要将后缀标记与结束引号匹配,可以使用以下命令:
/^(?!cat).*(\.\s*text\s*\")/m
请注意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
标志返回整个匹配字符串。
你可以这样做......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.