簡體   English   中英

如何使用正則表達式用JavaScript排除單詞?

[英]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)

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標志返回整個匹配字符串。

你可以這樣做......

  1. 將字符串分成兩部分
  2. 使用其中一個部分來檢查您是否排除(或包括)該部分
  3. 返回其他部分(或兩者如果你想)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM