說一個字符串是abc/xyz/IMPORTANT/DATA/@#!%@!%
,而我只想IMPORTANT/DATA/!%#@%!#%
如何使用正則表達式從字符串中去除[a-z]/[a-z] /?
我在正則表達式可怕,真的還沒有學會的JavaScript API還
說一個字符串是abc/xyz/IMPORTANT/DATA/@#!%@!%
,而我只想IMPORTANT/DATA/!%#@%!#%
如何使用正則表達式從字符串中去除[a-z]/[a-z] /?
我在正則表達式可怕,真的還沒有學會的JavaScript API還
如果文本總是喜歡當前的例子中,你也許能只需使用substring
和indexOf
即可從第二次出現「/」開始剪切它。
否則/([^\/]+\/[^\/]+\/)/
,或布萊爾的答案可能是一個很好的正則表達式使用。 或/^([^\/]+\/[^\/]+\/)/
如果它必須從字符串的開始處開始。
我打算查看子字符串IndexOF,聽起來像我需要的良好性能。 – 2010-05-31 16:37:53
是的,性能明智,這是一個更好的選擇。 – CharlesLeaf 2010-05-31 16:39:16
我覺得
yourstring.replace(/[a-z]+\/[a-z]+\/(.+)/g, "$1");
使用indexOf
和substring
。你不需要這樣的正則表達式。
您可以使用start
參數到indexOf
從給定的位置進行搜索。如果您在第一個/
之後搜索,則可以找到第二個/
的索引。
s = "abc/def/ghi/jkl";
s = s.substring(s.indexOf('/', s.indexOf('/') + 1) + 1);
document.writeln(s); // "ghi/jkl"
注意,這個假設總是會有至少兩個/
。如果沒有,這將保持s
原樣。
s = "abc/xyz";
s = s.substring(s.indexOf('/', s.indexOf('/') + 1) + 1);
document.writeln(s); // "abc/xyz"
如果你一定要使用正則表達式,它是這樣的:
s = "abc/def/ghi/jkl";
s = s.replace(/[a-z]+\/[a-z]+\//, '');
document.writeln(s); // "ghi/jkl"
同樣,這種假設總是會有至少兩個/
。
所以你想在最後一個斜槓後的一切? – 2010-05-31 16:34:24
我剛回去重新澄清。 – 2010-05-31 16:36:34
'FOO/bar/baz/QUUX'? – kennytm 2010-05-31 16:38:09