C# 中 Regex.Replace() 的正则表达式模式
Regex pattern in C# for Regex.Replace() in C#
我有一个字符串
string str1 = "SELECT * FROM A INNER JOIN B JOIN C JOIN A INNER JOIN B LEFT JOIN C";
我想将 JOIN 后跟 INNER、LEFT 等替换为 \n加入
我想要的输出是
SELECT * FROM A INNER JOIN B \nJOIN C \nJOIN A INNER JOIN B LEFT JOIN C
我是一个C#新手,我想用的是
var pattern = NOT IN("INNER" || "OUTER" || "LEFT") + @"\b"+ "JOIN";
var output = Regex.Replace(str1, pattern, "\nJOIN", RegexOptions.IgnoreCase);
在这里,我坚持使用 RegEx 实现 NOT IN("INNER" || "OUTER" || "LEFT")。
你能在这方面帮助我吗?
提前致谢。
我想这就是您要找的:
string str1 = "SELECT * FROM A INNER JOIN B JOIN C JOIN A INNER JOIN B LEFT JOIN C";
string result = Regex.Replace(str1, @"(?<!INNER)\s+JOIN", "\nJOIN");
//result: SELECT * FROM A INNER JOIN B \nJOIN C \nJOIN A INNER JOIN B LEFT \nJOIN C
我使用这个方便的网站来学习如何操作:regex101
记得使用右下角的快速参考搜索来查找您需要的字符或表达式(例如,我在您的案例中搜索了"Not")
更新:使其更健壮并允许 INNER 和 JOIN 之间有 1 到 n 个空格
我有一个字符串
string str1 = "SELECT * FROM A INNER JOIN B JOIN C JOIN A INNER JOIN B LEFT JOIN C";
我想将 JOIN 后跟 INNER、LEFT 等替换为 \n加入
我想要的输出是
SELECT * FROM A INNER JOIN B \nJOIN C \nJOIN A INNER JOIN B LEFT JOIN C
我是一个C#新手,我想用的是
var pattern = NOT IN("INNER" || "OUTER" || "LEFT") + @"\b"+ "JOIN";
var output = Regex.Replace(str1, pattern, "\nJOIN", RegexOptions.IgnoreCase);
在这里,我坚持使用 RegEx 实现 NOT IN("INNER" || "OUTER" || "LEFT")。
你能在这方面帮助我吗? 提前致谢。
我想这就是您要找的:
string str1 = "SELECT * FROM A INNER JOIN B JOIN C JOIN A INNER JOIN B LEFT JOIN C";
string result = Regex.Replace(str1, @"(?<!INNER)\s+JOIN", "\nJOIN");
//result: SELECT * FROM A INNER JOIN B \nJOIN C \nJOIN A INNER JOIN B LEFT \nJOIN C
我使用这个方便的网站来学习如何操作:regex101
记得使用右下角的快速参考搜索来查找您需要的字符或表达式(例如,我在您的案例中搜索了"Not")
更新:使其更健壮并允许 INNER 和 JOIN 之间有 1 到 n 个空格