C# 需要正则表达式来替换仅由字母或数字包围的所有符号
我需要一个正则表达式,以取代所有符号周围的字母或数字只。有一个空格,我将使用C#来运行表达式,我对刚才粘在regex部分上的部分没有意见 因此,在更换之后,请执行以下操作C# 需要正则表达式来替换仅由字母或数字包围的所有符号,c#,regex,C#,Regex,我需要一个正则表达式,以取代所有符号周围的字母或数字只。有一个空格,我将使用C#来运行表达式,我对刚才粘在regex部分上的部分没有意见 因此,在更换之后,请执行以下操作 01型应该是01型 01)*仍然是01)* -类别:玩具仍然是-类别:玩具 白色:背面应该是白色和黑色 当前表达式 (?<=\w)[^a-zA-Z0-9Category:]+(?=\w) (?对于C#,可以使用Regex.Replace函数 string a = "Category:Toys AND (Teddy Be
(?<=\w)[^a-zA-Z0-9Category:]+(?=\w)
(?对于C#,可以使用Regex.Replace函数
string a = "Category:Toys AND (Teddy Bear Type-01*) OR (Teddy Bear White/Black)";
string s = string.Empty;
s = Regex.Replace(a, @"[^()*:A-Za-z0-9]", " ");
不能将单词放入字符类。所有字符都将添加到该类中,顺序无关紧要
我不确定这对您是否足够,但以您为例,这将起作用:
(?<=\w)[^a-zA-Z0-9*:()\s]+(?=\w)
看
我在否定字符类中添加了冒号,表示“不替换冒号”。然后我添加了另一个选项,表示:替换冒号,但前提是不存在“类别”以前。我认为OP知道如何运行它,但不知道运行什么。您应该更新您的答案以提供实际的常规表达。我需要保留类别:玩具,但我需要将say Type:01替换为Type 01,我将更新问题
(?<=\w)[^\p{L}0-9*:()\s]+(?=\w)
(?<=\w)(?:[^a-zA-Z0-9*()\s:]+|(?<!Category):)(?=\w)