REGEX 使用关键字将字符串拆分为列表
Posted
技术标签:
【中文标题】REGEX 使用关键字将字符串拆分为列表【英文标题】:REGEX Split string into List using keyword 【发布时间】:2020-03-03 16:36:57 【问题描述】:我有如下字符串,我需要将字符串拆分为列表
string s = "Welcome to the Center
Batch #1
English
Description about the course
Batch #2
Science
Description about the course
Batch #3
Social
Description about the course "
我想使用"Batch"
关键字拆分字符串,输出应如下所示。如何使用正则表达式进行拆分?
myList[0]="Batch #1
English
Description about the course"
myList[1]="Batch #2
Science
Description about the course"
myList[2]="Batch #3
Social
Description about the course"
【问题讨论】:
你尝试了什么?见Should "Give me a regex that does X" questions be closed? 【参考方案1】:您可以尝试以下方法:-
List<string> strList = Regex.Split(str, "Batch").Skip(1).ToList();
【讨论】:
拆分后列表中缺少“批处理”一词 是的,在每个项目上附加“Batch”关键字都可以。 List您不需要正则表达式,只需将字符串拆分为两个连续的换行符(准确地说是\r\n\r\n
序列):
string s = @"Welcome to the Center
Batch #1
English
Description about the course
Batch #2
Science
Description about the course
Batch #3
Social
Description about the course ";
var splitted = s.Split(new string[] "\r\n\r\n" , StringSplitOptions.RemoveEmptyEntries).ToList();
splitted.RemoveAt(0);
【讨论】:
【参考方案3】:试试这个。
你应该使用.*?
Batch.*?course
或
Batch.*?.\n.*\n.*
FIDDLE DEMO
【讨论】:
以上是关于REGEX 使用关键字将字符串拆分为列表的主要内容,如果未能解决你的问题,请参考以下文章
Java Regex - 拆分逗号分隔列表,但在括号内排除逗号
Java Regex - 拆分逗号分隔列表但排除方括号内的逗号
C# 使用 Regex.Split 拆分大字符串。必须保留分隔符