我目前有字符串:
"CL,UP_REMOVE_LINE,#global_session_id,arg_stage=false,arg_project_id=-1,#global_line_id,arg_activity_id=-1,arg_mode=1,arg_line_id=#global_line_id,arg_session_id=-1"
我试过了:
splitty = Regex.Split(lineText,@"[\,]+\s*(?>arg_){1}?");
并收到:
{string[7]}
[0]: "CL,UP_REMOVE_LINE,#global_session_id"
[1]: "stage=false"
[2]: "project_id=-1,#global_line_id"
[3]: "activity_id=-1"
[4]: "mode=1"
[5]: "line_id=#global_line_id"
[6]: "session_id=-1"
我正在分裂至少一个逗号,然后是任意空格,后跟“arg_”分隔符,但有没有办法保持“arg_”部分完整,即指示[1-6]?
答案 0 :(得分:1)
使用正向前瞻(检查是否存在,但不消耗,从而将其留在拆分块中)而不是原子组(仍然消耗,因此在使用Split
时被删除):
,+\s*(?=arg_)
请参阅regex demo
请注意,您不需要将逗号放入字符类,也不需要转义逗号。
另外,{1}?
= {1}
并且完全是多余的(您可以随时将其删除,因为{1}
总是隐含的(即abc
= a{1}b{1}c{1}
) )。