我需要执行多字符串替换.我有一个字符串,根据替换图需要更改几个部分.
所有替换必须在一个动作中完成 - 这意味着如果" a"应该用" b" 替换,并且" b"必须用" c" 替换,输入字符串是" abc",结果将是" bcc"我有一个基于建筑物的溶剂正则表达式然后替换所有匹配.我前段时间写过它,现在我正在重构代码并且不满意它.是否有更好(更快,更简单)的溶出度?
这就是我所拥有的:
public static string Replace(string s, Dictionary<string, string> substitutions)
{
string pattern = "";
int i = 0;
foreach (string ch in substitutions.Keys)
{
if (i == 0)
pattern += "(" + Regex.Escape(ch) + ")";
else
pattern += "|(" + Regex.Escape(ch) + ")";
i++;
}
var r = new Regex(pattern);
var parts = r.Split(s);
string ret = "";
foreach (string part in …Run Code Online (Sandbox Code Playgroud) 我想知道是否可以在WPF Richtextbox中获取TextPointer的XY坐标.
<doc ok="yes">
<a>
<b>
<c>
aa
<d ok="yes">
bb
</d>
cc
</c>
</b>
</a>
<e>
ee
</e>
<f ok="no">
no
</f>
</doc>
Run Code Online (Sandbox Code Playgroud)
我需要使用XPath检索节点列表,其中每个节点必须满足以下条件:
节点至少有一个子文本节点
如果节点(或祖先轴中最近的节点)具有属性"ok",则该值必须为"yes"
当任何祖先是结果的一部分时,排除节点
所以在我的样本中,我想得到<c>和<e>.节点<d>被排除,因为它是子节点<c>,这是结果的一部分.
我用条件(1)开始使用这个表达式//*[count(./text()[normalize-space()])>0].它返回<c>,<d>,<e> 和<f>.我不知道如何排除<d>