第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

JavaScript:負(fù)查找等價(jià)?

JavaScript:負(fù)查找等價(jià)?

一只斗牛犬 2019-06-04 16:54:14
JavaScript:負(fù)查找等價(jià)?是否有一種方法可以實(shí)現(xiàn)與負(fù)后視在javascript正則表達(dá)式中?我需要匹配一個(gè)不以特定字符集開頭的字符串。如果匹配的部分在字符串的開頭找到,我似乎無法找到這樣做的正則表達(dá)式。消極的查找似乎是唯一的答案,但javascript沒有答案。編輯:這是我想要做的正則表達(dá)式,但它沒有:(?<!([abcdefg]))m因此,它將匹配“Jim”或“m”中的“m”,而不是“jam”中的“m”。
查看完整描述

3 回答

?
喵喵時(shí)光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊

正如Javascript所支持的負(fù)前瞻,一種方法是:

  1. 反轉(zhuǎn)輸入字符串

  2. 與反向正則表達(dá)式匹配

  3. 反轉(zhuǎn)和重新格式化匹配


const reverse = s => s.split('').reverse().join('');const test = (stringToTests, reversedRegexp) => stringToTests  .map(reverse)
  .forEach((s,i) => {
    const match = reversedRegexp.test(s);
    console.log(stringToTests[i], match, 'token:', match ? reverse(reversedRegexp.exec(s)[0]) : '?');
  });

例1:

以下是安德魯-恩斯利的問題:

test(['jim', 'm', 'jam'], /m(?!([abcdefg]))/)

產(chǎn)出:

jim true token: m
m true token: m
jam false token: ?

例2:

以下@neaumusic注釋(匹配)max-height但不是line-height,象征存在height):

test(['max-height', 'line-height'], /thgieh(?!(-enil))/)

產(chǎn)出:

max-height true token: height
line-height false token: ?


查看完整回答
反對 回復(fù) 2019-06-04
?
繁華開滿天機(jī)

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊

讓我們假設(shè)你想找到所有int前無unsigned:

支持負(fù)面展望:

(?<!unsigned )int

不支持負(fù)面展望:

((?!unsigned ).{9}|^.{0,8})int

基本思想是抓住n個(gè)前面的字符,并排除匹配的負(fù)面前瞻性,但也匹配的情況下,沒有前面的n個(gè)字符。(n是后面的長度)。

因此,所討論的準(zhǔn)則:

(?<!([abcdefg]))m

將翻譯為:

((?!([abcdefg])).|^)m

您可能需要使用捕獲組來找到您感興趣的字符串的確切位置,或者您希望用其他東西替換特定的部分。


查看完整回答
反對 回復(fù) 2019-06-04
  • 3 回答
  • 0 關(guān)注
  • 369 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)