我承認不是一個正則表達式的人,但通常我可以找到我的方式。這一個讓我難住...Javascript正則表達式我在努力
我需要匹配並替換一個大於str(>>),有一個可選的前導空間的雙倍。我知道這是行不通的,但沿線的東西...
/\s\s+[>>]/
但這顯然沒有好處。
希望有任何幫助。這個網站對我來說多年來一直是一個驚人的資源,我不能相信我現在只是想發佈一些東西,所以它甚至表明,即使像我這樣的關節頭已經能夠受益而不會打擾人們......直到現在:)在此先感謝。
我承認不是一個正則表達式的人,但通常我可以找到我的方式。這一個讓我難住...Javascript正則表達式我在努力
我需要匹配並替換一個大於str(>>),有一個可選的前導空間的雙倍。我知道這是行不通的,但沿線的東西...
/\s\s+[>>]/
但這顯然沒有好處。
希望有任何幫助。這個網站對我來說多年來一直是一個驚人的資源,我不能相信我現在只是想發佈一些東西,所以它甚至表明,即使像我這樣的關節頭已經能夠受益而不會打擾人們......直到現在:)在此先感謝。
如果你想的空間是可選的,那麼你可以簡單地這樣做:
/>>/
而且你可以將其作爲與g
修改替換模式:
str = str.replace(/>>/g, 'something')
如果您想檢查一個字符串是否可能有一些空格,然後使用
/^\s?>>$/
或簡單字符串替換 – 2013-03-14 21:37:40
@WouterJ如果你想做多個替換,你必須使用正則表達式:'myString.replace(/ >>/g,'')' – 2013-03-14 21:38:22
哦?我認爲'g'修飾符在匹配中只是有用的,而不是替換。 (在PHP中,所有替換將默認爲全局) – 2013-03-14 21:39:36
這個正則表達式應該可以工作。
/\s*[>]{2}/
這是清潔
/\s*>>/
測試:
var pattern = /\s*>>/;
s1 = " >>";
s2 = ">>";
s3 = ">> surrounding text";
s4 = "surrounding >> text";
s5 = "surrounding>>text";
s1.match(pattern);
[" >>"]
s2.match(pattern);
[">>"]
s3.match(pattern);
[">>"]
s4.match(pattern);
[" >>"]
s5.match(pattern);
[">>"]
更換例如
var pattern = /\s*>>/;
var s6 = " >> surrounding text";
s6.replace(pattern, ">");
"> surrounding text"
爲什麼不使用'> {2}'? – 2013-03-14 21:37:11
或者就是這個問題。 – Vulcan 2013-03-14 21:38:25
對於雙方>>在字符串中,並與領先的空白,嘗試:
/(\s*)(>>){1}/
你可以使用/ >> /但我想上面的正則表達式使替換工作更容易。 – ericmux 2013-03-14 21:47:22
如果你想讓它的前導空格字符的無限量的匹配:
/ *>>/
如果你希望它匹配0或1領先的空格字符:
/ ?>>/
'+'表示_one或more_,使用'?'表示_zero或one_。 – MikeM 2013-03-14 22:05:49
@MikeM感謝捕捉,那是我的不好。 – user829323 2013-03-14 22:18:20
打破你的例如:
\s
將匹配任何白衣E-空格字符\s+
將匹配一個或多個空格字符[>>]
將匹配一個>
(見本下文)所以,你的表達將匹配>
由至少兩個preceeded空白字符。
如果您想匹配零個或更多,您將不得不使用*
; fex \s*
。
方括號用於表示字符集合,並將匹配集合中的任何字符; fex [abc]
將與a,b或c匹配,但在時間只有一個字符。
正則表達式中的單個字符將匹配該字符; fex >
將會匹配一個大於號的符號。
將其組合在一起,我們得到以下的正則表達式爲你的情況:
/\s*>>/
使用本:
str.replace(/\s+>>/g, 'whatever');
你想,如果發現它來代替可選的前導空格除了>>? – magritte 2013-03-14 21:37:08