簡體   English   中英

JS-用正則表達式將字符串拆分為子字符串

[英]JS - Split string into substrings by regex

假設我有一個字符串,以7878開頭,以0d0a0D0A結束,例如:

var string = "78780d0101234567890123450016efe20d0a";
var string2 = "78780d0101234567890123450016efe20d0a78780d0103588990504943870016efe20d0a";
var string 3 = "78780d0101234567890123450016efe20d0a78780d0103588990504943870016efe20d0a78780d0101234567890123450016efe20d0a"

我如何通過正則表達式拆分它,使其變成一個數組,如:

['78780d0101234567890123450016efe20d0a']
['78780d0101234567890123450016efe20d0a','78780d0101234567890123450016efe20d0a']
['78780d0101234567890123450016efe20d0a','78780d0101234567890123450016efe20d0a','78780d0101234567890123450016efe20d0a']

您可以使用正向先行(?=7878)拆分字符串。 正則表達式不占用任何字符,因此7878將成為字符串的一部分。

var rgx = /(?=7878)/;
console.log(string1.split(rgx));
console.log(string2.split(rgx));
console.log(string3.split(rgx));

另一種選擇是對分裂'7878' ,然后把所有的元件除了第一和添加'7878'至它們。 例如:

var arr = string3.split('7878').slice(1).map(function(str){
    return '7878' + str;
});

可以,但是它也可以匹配不以0d0a結尾的字符串。 如何只匹配那些以0d0a0D0A

好了,那么您可以將String.matchString.match則表達式一起使用。

console.log(string3.match(/7878.*?0d0a/ig));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM