1

文字列があり、文字列を特定のパターンに置き換えるために正規表現を使用しています。基本的に、名前付きグループ内の空白を削除したい

例:

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}\")");

どんな助けでも大歓迎です。前もって感謝します!!

4

1 に答える 1

6

を使用string.Trimしますが、正規表現を主張する場合:

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

つまり、スペースではなく、スペースで区切られた「単語」であり、スペースではありません。

正規表現を回避するもう 1 つの楽しい方法は、単語間のスペースを削除する場合は、文字列の分割と結合を使用することです。

var text = " name name "; // sample
var result = string.Join(" ", text.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries));
于 2013-06-03T21:44:09.993 に答える