2

私の正規表現は(?:[^\S\n]|[^[:cntrl:]])*

一致させようとするとBenjamin Edward Ben、文字列全体、つまり「Benjamin Edward Ben」と一致します。

角かっこでテキストを一致させようとすると、たとえば "Benjamin Edw[ard] Ben" と、最初の角かっこ、つまり "Benjamin Edw" まで一致します。

テキストを他のテキスト、つまり「Benjamin Edw*ard^ Ben」と一致させようとすると、文字列全体、つまり「Benjamin Edw*ard^ Ben」と一致します。

角かっこがあっても文字列全体に一致するように正規表現を変更するにはどうすればよいですか?

前もって感謝します。

4

3 に答える 3

2

問題は[:cntrl:]..に変更します\p{Cc}

[:cntrl:]クラス形式は .net ではサポートされていません

\p{Cc}次のような制御文字に一致します[:cntrl:]

あなたの正規表現は

 (?:[^\S\n]|[^\p{Cc}])*

これはに似ています

[^\S\n\p{Cc}]*

ノート

[^\S\n]改行を除くスペース文字に一致することを意味します。したがって、上記の正規表現ではスペースにも一致します

于 2013-07-04T04:44:34.920 に答える
1

文字列のみに一致させるには、単純化して([\w\s\[\]]+). さらなる明確化をいただければ幸いです

于 2013-07-04T04:39:54.407 に答える
0

\\の角括弧の前で使用してみてくださいregex

于 2013-07-04T04:32:23.713 に答える