【发布时间】:2020-08-21 05:25:47
【问题描述】:
有一个文件要拆分
MSH|^~\&||||^asdasdasd|||asdasd|637226866166648574|637226866166648574|2.4
EVN|asd|20200416|20200416
PID|1|PW9074asdasd41|asd|PW907441|asdsad^wqe^wqeqwe||19700524|M
MSH|^~\&||||^qweqwewqe|||qwewqeqw|637226866166648574|637226866166648574|2.4
EVN|P03|20200416|20200416
PID|1|PW907441|PW907441|PW907441|Purvis^Walter^Rayshawn||19700524|M
我想使用 MSH 拆分它,这样结果就是一个字符串数组
array[0]=
"MSH|^~\&||||^asdasdasd|||asdasd|637226866166648574|637226866166648574|2.4
EVN|asd|20200416|20200416
PID|1|PW9074asdasd41|asd|PW907441|asdsad^wqe^wqeqwe||19700524|M";
array[1]=
"MSH|^~\&||||^asdasdasd|||asdasd|637226866166648574|637226866166648574|2.4
EVN|asd|20200416|20200416
PID|1|PW9074asdasd41|asd|PW907441|asdsad^wqe^wqeqwe||19700524|M";
到目前为止我所尝试的:
string[] sentences = Regex.Split(a, @"\W*((?i)MSH(?-i))\W*");
结果:
array[0]="";
array[1]="MSH";
array[2]="asdasdasd|||asdasd|637226866166648574|637226866166648574|2.4
EVN|asd|20200416|20200416
PID|1|PW9074asdasd41|asd|PW907441|asdsad^wqe^wqeqwe||19700524|M";
array[3]="MSH";
array[4]="asdasdasd|||asdasd|637226866166648574|637226866166648574|2.4
EVN|asd|20200416|20200416
PID|1|PW9074asdasd41|asd|PW907441|asdsad^wqe^wqeqwe||19700524|M";
或者至少在索引 1 和 2 拆分后它不应该错过 |^~\&||||^
【问题讨论】:
-
您面临的编程问题是什么?您只发布了一个任务。
-
@WiktorStribiżew 我已经添加了代码和问题。
-
试试
(?i)(?!^)(?=MSH)。你的字符串可以有Msh或mSh吗?或者它是否总是大写的MSH? -
可以有msh Msh MsH等