我有一些字符串作爲輸入,例如:sometext
什麼模式我必須使用與在任何地方的空間和點與之相匹配的字符串:匹配字符串和隨機空格嗎?
sometext
some text
so metex.t
111 s.o.m.e t e x t 222
替換空格和點不是解決方案,因爲我需要原始匹配的部分來突出顯示。
我有一些字符串作爲輸入,例如:sometext
什麼模式我必須使用與在任何地方的空間和點與之相匹配的字符串:匹配字符串和隨機空格嗎?
sometext
some text
so metex.t
111 s.o.m.e t e x t 222
替換空格和點不是解決方案,因爲我需要原始匹配的部分來突出顯示。
您可以使用:
/s\W*o\W*m\W*e\W*t\W*e\W*x\W*t/
>>> foo = "sometext"
bar = "sometext|some text|so metex.t|111 s.o.m.e t e x t 222".split(/\|/g)
regex = new RegExp(foo.split(/|/g).join('\\W*'))
console.log(regex)
arr = []
for (i = 0; i < 4; i++)
arr.push(regex.exec(bar[i])[0])
arr
<<< /s\W*o\W*m\W*e\W*t\W*e\W*x\W*t/
... ["sometext", "some text", "so metex.t", "s.o.m.e t e x t"]
你可以先剝去空間/等字符,檢查剩餘的比賽,如:
yourString.replace(/[ .]+/g, '').match(/sometext/)
我必須使用原始匹配的部分(帶空格) – mu3 2014-11-22 14:55:28
您的原始上面沒有修改。順便說一句,你總是可以使用更精細的正則表達式來匹配它有/沒有空格/點。只是想我會建議一個更清潔/更短的選項。 :-) – techfoobar 2014-11-22 14:56:54
ie「some.te x.t'.match(/ [。] * s [。] * o [。] * m [。] * e [。] * t [。] * e [。] * x [。] * t [。] * /)' – techfoobar 2014-11-22 14:57:49
你是一個正則表達式之後按順序匹配字母s,o,m,e,t,e,x,t,其中sometext可以是任何randow字符串?或者你是否專門處理了忽略空格和完全停留的正則表達式?你的問題是廣泛的解釋,並被正確的理由拒絕。試着在你想要的東西上更具體些,並舉例說明你嘗試過的東西沒有用。 – 2014-11-22 14:58:03
我是一個正則表達式,忽略空格和fullstops – mu3 2014-11-22 15:24:25