簡體   English   中英

有關此RegExp \\ b [alpahbet] {number} \\ w +的問題

[英]A question about this RegExp \b[alpahbet]{number}\w+

我的RegExp是\\ b [alpahbet] {number} \\ w +( 帶有全局選項

例如)

1. \\b[EWZFKXRIVM]{9}\\w+稱為regA

2. \\b[KVEWZRXIMA]{9}\\w+稱為regB

我想嘗試匹配的總字符串是EWZFKXRIVM, KVEWZRXIMA, FAMITWEPJQ, DOXEAUZJKF

我要實現的是以任何順序匹配字符串

例如,

regA(EWZFKXRIVM) ,它匹配EWZFKXRIVM, KVEWZRXIMA

regB(KVEWZRXIMA)匹配,僅匹配KVEWZRXIMA 但我期望EWZFKXRIVM, KVEWZRXIMA

所以我的問題是

  1. 為什么?
  2. 如何更正RegExp(regA,regB)以滿足兩個條件?
    • 唯一的限制是無法改變羊駝的病情

編輯

有這樣的數組列表

 list = [NDRPYXVBMT,PJZEXWHSMN,FUGLCTQSOP,ADQSFENPYG,
KPDFGQUIVH,DEISNLCKHG,DIRKJVQHMZ,YARDFTNPWO,RAGZFMJKIY,
PEKWHSFZGR,UJOTIBRYEH,MAZNSJHXTP,CBNETZXHIY,TIYRJSONWG,
FUCAMVLNDI,KXRMGDPOHU,GPMKEUFLQJ,YHBURQPOFM,VKURNBXTIH,
IGLOTVNPEY,SLCGRJOPYB,HUDGIFNTPM,EPHLCQZFOR,TYDIAVUQZW,
KTYBZPXSHG,CWXMLTFDJI,ERCJSWPFYH,TQSHIKRCMJ,JHBOYCFWAK,
NPVAMTLXBQ,BIWAUNPSOT,TQZARXMSLH,JLYDFHWMTN,XODHNVFCWM,
EWZFKXRIVM,KVEWZRXIMA
]

我會像這樣循環

for ( let i = 0; i < list.length; i ++){
  // i will make RegExp using each String
  const regex = new RegExp('\\b[' + list[i] + ']{' + increase + '}\\w+', 'g');
  const matchedList = list.toString().match(regex)
}

increase的變量用於匹配計數,以便獲得每個項目的最大值

TQZARXMSLH, JLYDFHWMTN等。

正則表達式\\b[KVEWZRXIMA]{9}\\w+意思是:在單詞邊界之后且KVEWZRXIMA至少一個其他單詞字符之前,將匹配的KVEWZRXIMA 9個字符彼此相鄰。 集合中字符的順序無關緊要。 這是一組無序的字符。

該字符串將匹配例如KKKKKKKKKh因為彼此KKKKKKKKKh有9個字符,並且所有這9個字符都在預定義集中( K[KVEWZRXIMA] )。 因此,如果要匹配所有字母字符,則只能使用[AZ]{9} ,它必須是[AZ]集中的字符9次。

如果要依賴字符的順序,則不能使用無序的字符集,但實際上需要使用正則表達式( []之外)中的字符。

如果您還有其他問題,請發表評論。

暫無
暫無

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

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