4

ヘルパー exe (C#) を使用して一部のデータをクリーンアップしようとしています。

各文字列を反復処理し、文字列の最初と最後から無効な文字を削除したい、つまり からドル記号を削除したい$$$helloworld$$$

これは、次の正規表現を使用して正常に機能します: \W.

ただし、途中に無効な文字を含む文字列はそのままにしておく必要があります。つまりhello$$$$world、問題なく、正規表現はこの特定の文字列と一致しないはずです。

したがって、本質的に、文字列の最初と最後にある無効な文字に一致する構文を見つけようとしていますが、無効な文字を含む文字列は本体に残します。

ご協力いただきありがとうございます!

4

5 に答える 5

7

これでできます!

(^[\W_]*)|([\W_]*$)

これは、start( ) またはend( )のregex0 個以上の非単語文字に一致することを意味します。^|$

于 2012-10-05T16:09:23.870 に答える
0

以下が機能するはずです。

^\W+|\W+$

^$は、それぞれ文字列の先頭と末尾へのアンカーです。真ん中の|は OR であるため、この正規表現は「文字列の先頭にある 1 つ以上の単語以外の文字に一致するか、文字列の末尾にある 1 つ以上の単語以外の文字に一致する」ことを意味します。

于 2012-10-05T16:09:44.960 に答える
0

文字列の先頭に一致させるには ^ を使用し、文字列の末尾に一致させるには $ を使用します。C# 正規表現チート シート

于 2012-10-05T16:10:59.670 に答える
0

これを試して、

 (^[^\w]*)|([^\w]*$)
于 2012-10-05T16:11:01.807 に答える
0

「行頭」に一致させるには ^ を使用し、「行末」に一致させるには $ を使用します。つまり、コードは一致させ、^\W* および \W*$ を削除する必要があります。

于 2012-10-05T16:11:41.410 に答える