C# 正则表达式帮助(再次)
我真的不知道该如何命名,但我需要一些正则表达式方面的帮助。首先,我想澄清的是,我并没有试图匹配HTML或XML,尽管看起来可能是这样,但事实并非如此。下面的内容是我为一个程序使用的文件格式的一部分,该程序用于指定应在该程序中导出哪些详细信息。没有涉及层次结构,只是每一行包含一个“标记”:C# 正则表达式帮助(再次),c#,regex,C#,Regex,我真的不知道该如何命名,但我需要一些正则表达式方面的帮助。首先,我想澄清的是,我并没有试图匹配HTML或XML,尽管看起来可能是这样,但事实并非如此。下面的内容是我为一个程序使用的文件格式的一部分,该程序用于指定应在该程序中导出哪些详细信息。没有涉及层次结构,只是每一行包含一个“标记”: <n> 这与我的程序匹配以查找枚举,它告诉我的程序导出名称值,无论如何,我也有如下标记: <adr:home> 这将指定家庭地址。我使用以下正则表达式: <((?'TA
<n>
这与我的程序匹配以查找枚举,它告诉我的程序导出名称值,无论如何,我也有如下标记:
<adr:home>
这将指定家庭地址。我使用以下正则表达式:
<((?'TAG'.*):(?'SUBTAG'.*)?)?(\s+((\w+)=('|"")?(?'VALUE'.*[^'])('|"")?)?)?>
如果将冒号作为第二个标记的一部分,会怎么样
<((?'TAG'.*)(?':SUBTAG'.*)?)?(\s+((\w+)=('|"")?(?'VALUE'.*[^'])('|"")?)?)?>
不完全确定您的目标是什么,但请尝试以下方法:
(?><)(?'TAG'[^:\s>]*)(:(?'SUBTAG'[^\s>:]*))?(\s\w+=['"](?'VALUE'[^'"]*)['"])?(?>>)
(?>]*)(:(?'SUBTAG'[^\s>:]*))(\s\w+=[''”](?'VALUE'[^']*)[''])(?>>)
我发现测试C#regex表达式非常有用。这会有帮助吗
<((?'TAG'.*?)(?::(?'SUBTAG'.*))?)?(\s+((\w+)=('|"")?(?'VALUE'.*[^'])('|"")?)?)?>
如果将“:”移动到子标记捕获组中会发生什么情况。例如(?“子标记”:*)?。然后你可以从捕获组中去掉前导“:”。这似乎也不起作用。它仍然会将整个内容返回到标记组,并将子标记组保留为空。你也需要使标记组为none greedo,请参见我的答案。不,这不起作用。你确定把它放对了吗,冒号不应该是组名的一部分,是吗?This不起作用,似乎发生的事情是程序没有读取到冒号,只是将所有内容都放在标记组中。就像这样?(忽略正则表达式的第二部分)。