2016-08-20 24 views
-2

文字列を検証するための正規表現がありますが、セミコロンは使用できません。私はいくつかのエスケープシーケンスを使用しなければならないからですか?正規表現hereをテストしました。つまり、セミコロンは使用できますが、C#アプリでは使用できません。セミコロンを許可する正規表現

EDITED私は正規表現

^[A-Za-z0-9]{1}[A-Za-z.&0-9\s\\-]{0,21}$ 

に従い、&実体があなたには、いくつかのXML属性内でこの正規表現を持っているという事実を示唆しており、この&は以下のように解析されますことをsar232 trading inc;

+0

ようこそスタックオーバーフロー! [ツアー](http://stackoverflow.com/tour)、[ヘルプセンター](http://stackoverflow.com/help)、[良い質問をする方法](http://このサイトがどのように機能するかを確認し、現在および将来の質問を改善するのに役立ち、より良い回答を得るのに役立ちます。 –

+1

私たちはあなたが求めていることを理解するために別の場所に行くつもりはありません。関連する情報は、質問そのものに**ここ** **である必要があります。それがオフサイトでオフサイトの場所が何らかの理由(オフライン、移動中、その他)で利用できない場合、あなたの質問は将来の読者には価値がありません。あなたの質問にここでは動作していないテキストのサンプル(および使用すべきではない)と使用している正規表現(およびそれを使用しようとしているコード)を含めるように[編集]してください。 –

+0

( '{1}'は余計です) – Biffen

答えて

5

を有効に試してみましたパターンが正規表現エンジンに送信されるときには単一の&シンボル。

つまり、あなたのパターンは2番目の文字クラスの中にセミコロンがなく、正規表現が指定した文字列と一致しないのです。

解決策は単純です:第二文字クラスにセミコロンを追加します。

someattr="^[A-Za-z0-9][;A-Za-z.&0-9\s\\-]{0,21}$" 
        ^

を参照してくださいregex demo

[A-Za-z0-9]が既にだけ一致するため{1}制限数量詞が冗長であることに注意してください1の記号を表示します。

関連する問題