Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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
C# 使用正则表达式仅在第一个分隔符处断开字符串_C#_Regex - Fatal编程技术网

C# 使用正则表达式仅在第一个分隔符处断开字符串

C# 使用正则表达式仅在第一个分隔符处断开字符串,c#,regex,C#,Regex,我正在提取一个字符串,其中包含以下格式的信息: Name: ABC Enterprises Address: 1234 Somewhere Ln Service Request: They want something done. 我需要提取数据标签及其相关数据,因此我使用了regex模式(.+):(.+),并取得了一些成功(数据标签在组1中,相关数据在组2中)。但是,在我扩展范围时,如果“服务请求”中有“:”字符,则正则表达式将失败,因为第一个组将捕获从行首到行尾的所有内容。有没有办法更改我

我正在提取一个字符串,其中包含以下格式的信息:

Name: ABC Enterprises
Address: 1234 Somewhere Ln
Service Request: They want something done.
我需要提取数据标签及其相关数据,因此我使用了regex模式
(.+):(.+)
,并取得了一些成功(数据标签在组1中,相关数据在组2中)。但是,在我扩展范围时,如果“服务请求”中有“:”字符,则正则表达式将失败,因为第一个组将捕获从行首到行尾的所有内容。有没有办法更改我的正则表达式,为第一个“:”而不是最后一个创建分组分隔符?谢谢。

使用:
(.+?):(.+)

为了获得更好的性能,请使用独占匹配:
([^:::+):(.+)
使用:
(.+?):(.+)


为了获得更好的性能,请使用排他匹配:
([^::]+):(.+)
使用排除类以确保第一个组中没有
':'

([^:]+): (.*)

使用排除类确保第一个组中没有
:'

([^:]+): (.*)
我将添加锚点(使用多行选项)并使用以下正则表达式:

^([^:]+):[ \t]*(.*)$

我将添加锚点(使用多行选项)并使用此正则表达式:

^([^:]+):[ \t]*(.*)$

您也不能使用正则表达式。只需使用String.indexOf()获取第一个“:”的位置,并使用String.substring()将每一行与String.indexOf()中的值分开。您也不能使用正则表达式。只需使用String.indexOf()获取第一个“:”的位置,并使用String.substring()将每一行与String.indexOf()中的值分开。