【发布时间】:2015-06-24 09:18:03
【问题描述】:
我正在用 C# 制作一个小型解析器。
我要解析的字符串是:
Hello [Name] [LastName] how are you? [FirstTime]this is your first time isnt it?[/FirstTime] Bye!
我的 [Name] 和 [LastName] 的 C# 代码是:
message = message
.Replace("[FirstName]", user.FirstName)
.Replace("[LastName]", user.LastName)
bool isFirstTime = user.FirstLogin;
我的问题在[FirstTime] [/FirstTime] 之间。如果isFirstTime 为真,我想保留标签之间的字符串,如果为假,我想丢弃标签内的文本。
知道我该如何解决这个问题吗?
示例结果:
你好詹姆斯邦德,你好吗?这是你第一次不是吗?再见!
编辑:我忘了说示例字符串只是一个示例,并且字符串是“用户定义的”,所以在我的情况下使用字符串生成器是行不通的。
【问题讨论】:
-
为什么是正则表达式?第一部分可以使用
String.Format完成,第二部分可以通过在标志为true时附加到字符串来完成。 -
是的,但是 [FirstTime] [/FirstTime] 之后也有文字
-
你也可以追加...
-
是的,如果字符串不是动态的 :)
-
您当然可以使用 Stringbuilder 类,甚至使用动态字符串。这仅取决于您要显示句子的顺序。内容是'a'还是'b'无关