2

私は数学にこの正規表現を持っています:

  • ゼロ + 空白 + その他で始まる文字列
  • 文字列はゼロです

    "0 fkvjdm" // Must Match
    "0" // Must match
    "0.56" // NOT match
    

私が使用している正規表現は次のとおりです。

^([0]$|([0]\s+.))

それを改善する方法はありますか?または、バグがありますか?

どうもありがとうございました。

環境

  • VS 2010 .net 4
4

2 に答える 2

5
  • まず0、文字クラスを入れる必要はありません。
  • 第二に、正規表現は空白の後に複数の文字と一致しません。ドットに数量詞がないため.、正規表現の2番目の部分にあります。空白の後にさらに多くの文字を一致させるには、.*(0 以上) または.+(1 以上) を使用する必要があります。

明確にするために、ここでオプションの量指定子を利用できます。

^0(\s+.*)?$
于 2013-09-18T16:23:31.090 に答える
1

2 番目の文字が一致の失敗の原因のようです。2 番目の文字がピリオドの場合は一致しません。それ以外の場合は一致します。?!一致するものが成功した場合、一致全体が失敗すると言います。したがって、2 番目の文字がピリオドの場合、失敗します。

^0(?!\.).*
于 2013-09-18T17:00:35.417 に答える