假设我有以下xml字符串:
<Item Name=\"$Resources:myresource,somestring;\"</Item>
现在我想挑选出所有出现的$ Resource标签(可以有任意数量)。
我实际上不想用相应的值替换这些resx字符串,但我已经获得了代码。
“问题”是应该为我获取这些值的代码要求我传入资源文件的名称(例如$ Resource之后的部分。在这个例子中它将是myresource)和实际资源对象(例如somestring)。
现在我一直在玩正则表达式为我完成这个,我真正想要的是将这两个值分成两个不同的组(因为有时“资源文件”将是默认值,例如它也可以看起来像$ Resource:somestring)。
任何人都知道如何做到这一点,或者我可能会在.NET中使用能够为我做这件事的东西,例如:给我一个属性中的类名(我认为它是资源文件的合适名称),另一个属性中的资源对象?
答案 0 :(得分:3)
RegEx实际上非常简单:
(\$Resources\:(?<name>[^,;]+),(?<content>[^;]+);)|(\$Resources\:(?<content>[^;]+);)
对于以下字符串,它将返回3个结果,其中两个结果包含组name
和content
,一个结果只有组content
。
样本数据:
<Item Name=\"$Resources:somedefaultstring;$Resources:myresource,somestring;$Resources:myresource2,somestring2;$Resources:somedefaultstring;\"</Item>
更新:
根据评论修正。