我想用正則表達式以下格式的字符串匹配: (#sometext#)特定模式的正則表達式匹配的JavaScript
在這個意義上,無論是在那裏(#和#)之間只應匹配。 因此,文本:
var s = "hello(%npm%)hi";
var res = s.split(/(\([^()]*\))/);
alert(res[0]);
o/p: hello(%npm%)hi
而且
var s = "hello(#npm#)hi";
var res = s.split(/(\([^()]*\))/);
alert(res[0]);
o/p: hello
alert(res[1]);
o/p : (#npm#);
但事實是,正則表達式/(\([^()]*\))/
是匹配()
之間的一切,而不是提取包括(# .. #)
像字符串:
hello
(#npm#)
hi
你可以做這樣的事情's.match之間的一切(/ \(#([^#] *)#\)/)'如果你不需要括號外的部分。 (你爲什麼要使用'.split()'如果你真的想這樣做,那麼也許像's.split(/(\(#|#\))/)'?) – nnnnnn
@nnnnnn:我已經編輯問題 – user1400915
嘗試這種情況:s.match(/(\(#([^#] *)#\))/); – user2630764