获取子字符串,直到第n个匹配regex

get substring until nth match regex

本文关键字:regex 字符串 获取      更新时间:2023-09-26

假设我有字符串:

"Hello world; some random text; foo; bla bla; "

我可以使用什么正则表达式来获得子字符串,直到第二个CCD_ 1。

换句话说,我希望以子字符串"Hello world; some random text;" 结束

或者我想得到子字符串,直到第3个;从而导致:

"Hello world; some random text; foo;"

试试这个。应该还可以。

/(['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;

如果不必使用Regex,可以使用带有分号分隔符的Split()方法:

http://www.w3schools.com/jsref/jsref_split.asp

我认为这不是一个最好用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的想法,我不记得你可以传递第二个参数来分割。

为什么选择regex??

用简单的方法

var str = "Hello world; some random text; foo; bla bla; "
alert(str.split(";",2).join(";"));

reference