假设我有字符串:
"Hello world; some random text; foo; bla bla; "
我可以使用什么常规表达式来获取子字符串直到第二个;
。
换句话说,我想最终得到子串"Hello world; some random text;"
或者我想要获得子串直到3;因此结束:
"Hello world; some random text; foo;"
答案 0 :(得分:4)
试试这个。应该工作得很好。
/([\w\s]+?\;){2}/
使用如下:
var str = "Hello world; some random text; foo; bla bla; ";
var match = str.match(/([^;]*;){2}/)[0];
alert(match); // Hello world; some random text;
答案 1 :(得分:2)
如果您不必使用Regex,可以使用Split()方法和分号分隔符:
答案 2 :(得分:1)
我不认为这是RegExps最好解决的问题。使用直接JS很容易做到这一点。 http://jsfiddle.net/mendesjuan/xvM53/1/
var str = "Hello world; some random text; foo; bla bla; ";
function getParts(str, delimiter, partCount) {
return str.split(delimiter,partCount).join(";");
}
归功于它应有的地方:我无耻地使用了diEcho的想法,我不记得你可以传递第二个参数来分裂。
答案 3 :(得分:1)
为什么正则表达式?
以简单的方式做到
var str = "Hello world; some random text; foo; bla bla; "
alert(str.split(";",2).join(";"));