Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用正则表达式每n行拆分一个字符串_Javascript_Regex_String - Fatal编程技术网

Javascript 使用正则表达式每n行拆分一个字符串

Javascript 使用正则表达式每n行拆分一个字符串,javascript,regex,string,Javascript,Regex,String,假设我想使用split()方法每3行拆分一次上述字符串,我应该使用哪个正则表达式分隔符来生成如下内容: "LINE 1. LINE 2. LINE 3. LINE 4. LINE 5. LINE 6." 首先,您不想在这里使用split(),因为您需要一个完全支持它的正则表达式引擎。幸运的是,.match()也可以做到这一点(可以说更好): 测试一下 说明: (?:#启动一个与。。。 ^#(从一行开始) .*#任意数量的非换行字符 $#(直到行结束)。 \n?#然后匹配换行符(如果存在)。 )

假设我想使用
split()
方法每3行拆分一次上述字符串,我应该使用哪个正则表达式分隔符来生成如下内容:

"LINE 1.
LINE 2.
LINE 3.
LINE 4.
LINE 5.
LINE 6."

首先,您不想在这里使用
split()
,因为您需要一个完全支持它的正则表达式引擎。幸运的是,
.match()
也可以做到这一点(可以说更好):

测试一下

说明:

(?:#启动一个与。。。
^#(从一行开始)
.*#任意数量的非换行字符
$#(直到行结束)。
\n?#然后匹配换行符(如果存在)。
){1,3}#它重复这三次。如果少于三行
#在字符串的末尾,它也满足于匹配两个或一个。

蒂姆,这是一个多么好、干净的回答啊。我需要一个Python版本,这似乎可以解决这个问题:

result = subject.match(/(?:^.*$\n?){1,3}/mg);
给出了结果

lines = """LINE 1.
LINE 2.
LINE 3.
LINE 4.
LINE 5.
LINE 6."""

import re
print(re.compile("(?:^.*$\n?){1,3}",re.M).findall(lines))
用4而不是3来代替应该会给

['LINE 1.\nLINE 2.\nLINE 3.\n', 'LINE 4.\nLINE 5.\nLINE 6.']

的确如此

使用哪一个例子???///第7行呢?分享你的研究成果对每个人都有帮助。告诉我们您尝试了什么,以及为什么它不能满足您的需求。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另请参见示例字符串无效,除非它不是直接从文本文件读取的。Ooops!我认为这是一个Python问题。看看这像一个迷人的作品。我确信我可以将
split()。“谢谢”和“这很有效。”甚至都不是值得赞赏的评论,更不用说回答了。请添加一些详细信息,使有用的补充更加明显。否则,这会给人一种很强烈的印象,实际上并不是一个答案。我不知道我的答案会给你什么样的强烈印象。另一方面,你的评论表明我应该关心。我不。谢谢你的编辑,佐伊。
['LINE 1.\nLINE 2.\nLINE 3.\n', 'LINE 4.\nLINE 5.\nLINE 6.']
['LINE 1.\nLINE 2.\nLINE 3.\nLINE 4.\n', 'LINE 5.\nLINE 6.']