Skip to main content
 首页 » 编程设计

c#之如何使用 C# 修剪正则表达式中的空白

2024年01月28日26落叶无声

我有一个字符串,我正在使用 RegEx 将该字符串替换为特定模式。基本上我想修剪命名组中的空白

例如:

myString1: substringof('test',Name) 
myString2: substringof(' test ',Name) 
myString3: substringof('test ',Name) 
 
Expected output: Name.Contains(\"test\") 
 
myString4: substringof(' test test ',Name) 
myString5: substringof(' test test',Name) 
myString6: substringof('test test ',Name)   
 
Expected output: Name.Contains(\"test test\") 

代码:

var replaceRegex = new Regex(substringof\\(\\s*'(?<text>[^']+'?[^']*)'\\s*,\\s*(?<pname>[\\w\\[\\]]+)\\s*\\)"); 
myString = replaceRegex.Replace(myString, "${pname}.Contains(\"${text}\")"); 

任何帮助将不胜感激。提前致谢!!

请您参考如下方法:

使用 string.Trim,但如果您坚持使用正则表达式:

[^\s.*](?<pname>\w.*)[^\s.*] 

也就是说不是空格,然后是一个可以用空格分隔的“单词”,然后不是空格。

另一个避免正则表达式的有趣方法,如果你想修剪单词之间的空格,将使用字符串拆分和连接:

var text = " name name "; // sample 
var result = string.Join(" ", text.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries));