gpt4 book ai didi

javascript - 如何将 JavaScript 正则表达式转换为 C# 正则表达式?

转载 作者:太空宇宙 更新时间:2023-11-04 15:53:32 27 4
gpt4 key购买 nike

假设我们在 Javascript 中有以下正则表达式代码行:

.replace(/[\*\+\-=~><\"\?^\${}\(\)\:\!\/[\]\\\s]/g, '\\$&') // replace single character special characters

.replace(/\|\|/g, '\\||') // replace ||

.replace(/\&\&/g, '\\&&') // replace &&

.replace(/AND/g, '\\A\\N\\D') // replace AND

.replace(/OR/g, '\\O\\R') // replace OR

.replace(/NOT/g, '\\N\\O\\T'); // replace NOT

我正在尝试将这些正则表达式代码行转换为以下 C# 正则表达式:

 public static String ReturnSanitizedString(string query)
{
String pattern1 = @"[\*\+\-=~><\""\?^\${ }\(\)\:\!\/[\]\\\s]"; // Replace the single character special characters.
String pattern2 = @"\|\|";
String pattern3 = @"\&\&";
String pattern4 = @"AND";
String pattern5 = @"OR";
String pattern6 = @"NOT";

String replacement1 = "\\$&";
String replacement2 = "\\||";
String replacement3 = "\\&&";
String replacement4 = "\\A\\N\\D";
String replacement5 = "\\O\\R";
String replacement6 = "\\N\\O\\T";

Regex rgx = new Regex(pattern1);
string result1 = rgx.Replace(query, replacement1);

Regex rgx2 = new Regex(pattern2);
string result2 = rgx2.Replace(result1, replacement2);

Regex rgx3 = new Regex(pattern3);
string result3 = rgx3.Replace(result2, replacement3);

Regex rgx4 = new Regex(pattern4);
string result4 = rgx4.Replace(result3, replacement4);

Regex rgx5 = new Regex(pattern5);
string result5 = rgx5.Replace(result4, replacement5);

Regex rgx6 = new Regex(pattern6);
string finalResult = rgx6.Replace(result5, replacement6);

return finalResult;
}

以下句子(这是查询):

"AND there! are? (lots of) char*cters 2 ^escape!"

执行上面的代码后应该转换成这句话:

\A\N\D\ there\!\ are\?\ \(lots\ of\)\ char\*cters\ 2\ \^escape\!

我无法让它工作,我在上面的方法中做错了什么。

最佳答案

pattern3 中,您有正则表达式 \&\&| ,它基本上匹配所有内容。只需像这样删除最后一个管道即可得到您想要的:

String pattern3 = @"\&\&";

关于javascript - 如何将 JavaScript 正则表达式转换为 C# 正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42902443/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com