簡體   English   中英

使用正則表達式過濾字符串

[英]Filter strings using regular expression

我想使用正則表達式在文本文件中查找滿足以下所有要求的多個字符串。

  • 長度為 3
  • 全部由大寫字母組成
  • 第一個字符不是“A”
  • 第二個字符不是“J”
  • 第三個字符不是“K”

我從這個開始: /[AZ]{3}/但出於某種原因,它也匹配小寫的 3 個字母字符串。

這可能嗎? 任何指導表示贊賞。

您需要錨定正則表達式,使其與整行匹配。 否則,它將匹配一個長度超過 3 的字符串,但在其中的任何位置都包含 3 個大寫字母。

您可以為每個字符使用字符集。

/^[B-Z][A-IK-Z][A-JL-Z]$/

^匹配行的開頭。 [BZ]匹配任何不是A大寫字母, [A-IK-Z]匹配除J之外的任何字母, [A-JL-Z]匹配除M之外的任何字母。 $匹配行尾。

使用前瞻的另一種解決方案:

^(?=[A-Z]{3}$)[^A][^J][^K]$

演示和解釋

嘗試以下操作以返回所有匹配項: /\b(?=[AZ])[^A](?=[AZ])[^J](?!=[AZ])[^K]\b/g

它利用前瞻,將僅返回 3 個字母匹配,並且對於任何其他變體 A、J、K 可以相對容易地重復

演示: https://regex101.com/r/5s2Gkj/1

暫無
暫無

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

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