簡體   English   中英

正則表達式匹配來自后面模式的單詞

[英]regeexp matching words from the back pattern

我有正則表達式的問題/?!(\w*)!!(?!\w)/g正在向后匹配我,因為我需要從頭到尾檢查它。 我將舉例說明什么是錯的:

例子:

!!foo!!bar!! - 應該只匹配bar ,工作正常

!!foo!!!!bar!! - 應該匹配foobar ,工作正確

!!foo!!!!bar!!test - 應該匹配foobar ,現在只匹配foo不正確

你可以創建一個 reverseString function 像

function reverseString(str) {
    return str.split("").reverse().join("");
}

現在,如果您在輸入(和匹配器結果)上應用 reverseString,您可以使用 go 以及簡單的 RegExp !!\w+!!

使用正則表達式: /!!(\w*)!!/g

var st = ['!!foo!!bar!!', '!!foo!!!!bar!!', '!!foo!!!!bar!!test'];

st[0].split("").reverse().join("").match(/!!(\w*)!!/g).map(x => x.split("").reverse().join("").replace(/!/g, '')).reverse()  // ['bar']
st[1].split("").reverse().join("").match(/!!(\w*)!!/g).map(x => x.split("").reverse().join("").replace(/!/g, '')).reverse()  // ['foo', 'bar']
st[2].split("").reverse().join("").match(/!!(\w*)!!/g).map(x => x.split("").reverse().join("").replace(/!/g, '')).reverse() // ['foo', 'bar']

   or

st.map(y => y.split("").reverse().join("").match(/!!(\w*)!!/g).map(x => x.split("").reverse().join("").replace(/!/g, ''))).map(z => z.reverse())
// [['bar'], ['foo', 'bar'], ['foo', 'bar']]

暫無
暫無

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

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