Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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,我有一个测量设备,可以创建以下格式的样本: V GL020(1)=20110117161703 另一个例子: V GLXX011(10)=ADEF=*GFSDAS 我要做的是创建一个返回 GL020/1/20110117161703第一个示例和 GLXX011/10/ADEF=*GFSDAS用于第二个示例 我发现一个正则表达式可以可靠地匹配前两个必需部分: *?(?:[a-z][a-z]*[0-9]+[a-z0-9]*)。(?\d+) 但是,我仍然缺少第一个“=”之后的部分。我不知道这是否重要,

我有一个测量设备,可以创建以下格式的样本:

V GL020(1)=20110117161703

另一个例子:

V GLXX011(10)=ADEF=*GFSDAS

我要做的是创建一个返回
GL020/1/20110117161703
第一个示例和
GLXX011/10/ADEF=*GFSDAS
用于第二个示例

我发现一个正则表达式可以可靠地匹配前两个必需部分:

*?(?:[a-z][a-z]*[0-9]+[a-z0-9]*)。(?\d+)


但是,我仍然缺少第一个
“=”
之后的部分。我不知道这是否重要,但第一个
“=”
后面的部分可能包含类似
“=”
本身的字符。

您可以使用如下表达式:

(\w+)\((\d+)\)=(\S+)

在第一个、第二个和第三个捕获组中为您提供所需的子字符串。

您可以使用以下表达式:

(\w+)\((\d+)\)=(\S+)
在第一个、第二个和第三个捕获组中提供所需的子字符串。

尝试使用此子字符串:

([^\(|\s]+)\((\d+)\)=([\w|\=|\*]+)
尝试使用此选项:

([^\(|\s]+)\((\d+)\)=([\w|\=|\*]+)
请使用此正则表达式:

(?<first>\w+)\s(?<second>\w+)(?<third>\(\d+\))=(?<forth>.*)
(?\w+)\s(?\w+)(\(\d+)=(?*)
请使用此正则表达式:

(?<first>\w+)\s(?<second>\w+)(?<third>\(\d+\))=(?<forth>.*)
(?\w+)\s(?\w+)(\(\d+)=(?*)

在匹配等号后的所有内容时遇到问题?然后正好匹配一个等号+后面的所有符号(当然会包括更多等号)难道你不能跳过前两个字符(
V
)并将
)=
替换为“/”(如果重要的话,只需它们的第一次出现)?在匹配等号之后的所有内容时遇到问题?然后正好匹配一个等号+后面的所有符号(当然会包括更多的等号)难道你不能跳过前两个字符(
V
)并将
)=
替换为“/”(如果重要的话,只是它们的第一次出现)?哈哈。很容易。我花了好几个小时在那个上面(.非常感谢。第三个捕获组可能也包括空格。我该如何处理?@lightxx,如果您只想捕获第一个
=
之后的所有内容,可以将
\S+
更改为
+
不匹配新行,除非您使用
S
标志。)哈哈。哇。太简单了。我花了好几个小时在那上面。:(。非常感谢。第三个捕获组可能也包括空格。我该怎么处理呢?@lightxx,如果你只想捕获第一个
=
之后的所有内容,你可以将
\S+
更改为
+
。(
不匹配新行,除非您使用
s
标志。)@Qtax在答案中添加新行比在注释中解释要快,应该更正什么。@Qtax在答案中添加新行比在注释中解释要更正什么要快。