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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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,我在我们的客户文件中有以下自我定义: <bitmaskdef name=SDC_STATUS_BITMASKM_1> ..content </bitmaskdef> 你可以用 new Regex(string.Format(@"<bitmaskdef name=[^>]*?{0}(?:>|;[^>]*>)(.*?)</bitmaskdef>", bitmaskName)); newregex(string.Forma

我在我们的客户文件中有以下自我定义:

<bitmaskdef name=SDC_STATUS_BITMASKM_1>  

 ..content

</bitmaskdef>
你可以用

new Regex(string.Format(@"<bitmaskdef name=[^>]*?{0}(?:>|;[^>]*>)(.*?)</bitmaskdef>", bitmaskName));
newregex(string.Format(@“]*?{0}(?:>;[^>]*>)(.*),bitmaskName));

它将匹配任何
bitmaskdef
标记,其名称属性包括
bitmaskName
,在这里演示:

您的数据看起来几乎像XML。为什么不使用XML和内置的XML库而不是RegEx?因为您提出了这个问题(即,部分所需信息未知),似乎使用RegEx或任何其他东西都没有可能的解决方案。你应该把重点放在确定已知的东西上(例如,结束标记),并使用这些信息来了解未知的东西。请注意,不久前,我为一个与此问题等效的问题编写了一个基于拆分的解决方案,该解决方案也应该适用于您(一旦您正确了解了输入条件):@Enigmativity:是的,它看起来像XML,但根本不是XML文件。这是一个包含许多与XML不同的有线定义的文件。@瓦罗卡巴斯:我必须读入一个文本文件,开始和结束标记在不同的行中。我已经更新了我的发帖。到目前为止,我得到了整个文件的内容,并寻找结束和结束标记
<bitmaskdef name=SDC_STATUS_BITMASKM_1; SDC_STATUS_BITMASKM_2; SDC_STATUS_BITMASKM_3; SDC_STATUS_BITMASKM_4>

...content

</bitmaskdef>
var bitmaskDefinitionMatch = bitmaskDefinitionRegex.Match(String.Join(String.Empty, fc.ToArray()));
new Regex(string.Format(@"<bitmaskdef name=[^>]*?{0}(?:>|;[^>]*>)(.*?)</bitmaskdef>", bitmaskName));