忽略& # 39;(撇号)从RegEx
本文关键字:撇号 RegEx 忽略 | 更新日期: 2023-09-27 18:13:16
我有一个RegEx,并希望忽略字符串中的任何'(撇号)。正则表达式的讨论可以在字符串操作的讨论中找到:如何用特定的模式替换字符串
RegEx: ''(''s*'(?<text>[^'']*)'''s*,''s*(?<pname>[''w''['']]+)''s*'')
基本上提供的RegEx在{text}包含'(撇号)的场景中不起作用。你能让正则表达式忽略{text}中的所有撇号吗?
For eg:
substringof('B's',Name) should be replaced by Name.Contains("B's")
substringof('B'',Name) should be replaced by Name.Contains("B'")
substringof('''',Name) should be replaced by Name.Contains("'")
欣赏它! !谢谢你。
似乎很难处理''''
这种情况。这就是为什么我选择使用委托和另一个代替来解决这个问题的原因。
static void Main(string[] args)
{
var subjects = new string[] {"substringof('xxxx',Name)", "substringof('B's',Name)", "substringof('B'',Name)", "substringof('''',Name)"};
Regex reg = new Regex(@"substringof'('(.+?)''s*,'s*(['w'[']]+)')");
foreach (string subject in subjects) {
string result = reg.Replace(subject, delegate(Match m) { return m.Groups[2].Value + ".Contains('"" + m.Groups[1].Value.Replace("''", "'") + "'")"; });
Console.WriteLine(result);
}
}