Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.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#Regex解析文本_C#_Regex - Fatal编程技术网

用C#Regex解析文本

用C#Regex解析文本,c#,regex,C#,Regex,我正在为一个游戏项目开发一个文本编辑器。我们有几种类型的标记规则 以下是一些例子: [k1]Lorem ipsum door sit amet[/k1](带“k1”标记的句子) [k1k2]Lorem ipsum door sit amet[/k1k2](一个带有“k1”和“k2”标记的句子) [k1!k2]Lorem ipsum door sit amet[/k1!k2](一个有k1标记但没有k2标记的句子) 在一篇长文本中,我必须意识到任何句子都属于k1到k9之间的多个标记或受到多个标记的限

我正在为一个游戏项目开发一个文本编辑器。我们有几种类型的标记规则

以下是一些例子:

[k1]Lorem ipsum door sit amet[/k1]
(带“k1”标记的句子)

[k1k2]Lorem ipsum door sit amet[/k1k2]
(一个带有“k1”和“k2”标记的句子)

[k1!k2]Lorem ipsum door sit amet[/k1!k2]
(一个有k1标记但没有k2标记的句子)

在一篇长文本中,我必须意识到任何句子都属于k1到k9之间的多个标记或受到多个标记的限制。这也是可能的:

[k1k2k3!k4!k5]Lorem ipsum door sit amet[/k1k2k3!k4!k5]

那么我应该使用什么类型的正则表达式来解析匹配的句子呢

编辑:

所以这里有一个可靠的场景。我有这样一段话:

[k1]这是一个句子1。[/k1][k1k2]另一个句子2[/k1k2][k1!k2]和第三个句子。[/k1!k2][k1k3k4!k5]最后一个句子[/k1k3k4!k5]

因此,如果用户同时拥有k1和k3标签,那么她必须看到:


这是第一句话。还有第三句。

在您的示例中,您需要做的就是查看开头的
[]
标记,它返回(比如)
k1k2k3!k4!k5
-您不需要正则表达式来解析它,只需遍历结果并提取
k
值。。。虽然再次阅读您的问题,但您会说我应该使用什么类型的正则表达式来解析匹配的句子你是说在较长的文本中有相同标记的句子?你能举一个例子吗?好的,让我给你一个很好的例子。把这里的所有文本作为一个完整的段落来考虑,比如:[k1]句子1[/k1][k1k2]句子2[/k1!k2]句子3[/k1!k2][k1k2k3!k4!k5]在我的游戏中,如果用户有k1标记和k2标记,她只能把这段看作是“句子1.句子2”(别误会,正则表达式在你需要的时候非常有用,但是“有些人在遇到问题时,会想”我知道,我会使用正则表达式。“现在他们有两个问题。”)在你的例子中,你所需要做的就是查看开头的
[]
标记,它返回(比如)
k1k2k3!k4!k5
-你不需要正则表达式来解析它,你只需要遍历结果并提取
k
值…尽管再次阅读你的问题,你会说我应该使用什么类型的正则表达式来解析匹配的句子?-你是指在较长的文本中具有相同标记的句子?你能显示一个正则表达式吗足够了吗?好的,让我给你一个很好的例子。把这里的所有文本作为一个完整的段落,比如:[k1]句子1[/k1][k1k2]句子2][k1!k2]句子3[/k1!k2][k1k2!k4!k5]句子4[/k1k2k3!k4!k5]在我的游戏中,如果用户有k1标记和k2标记,她只能把这段看作是“句子1.句子2”(别误会我的意思,正则表达式在你需要的时候非常好,但是“有些人在遇到问题时,会想”我知道,我会使用正则表达式。“现在他们有两个问题。”)