1

私の要件は、データグリッドビューの特定の列で数字.、、、およびのみを許可することです。入力例は、、、、などです。<-<2.51-15.5>10>12.54<75

パターンマッチングをチェックするために正規表現を使用しています。以下は私のコードです

If System.Text.RegularExpressions.Regex.IsMatch(val, "^[\d.-]+$") Then
            Return True
        Else
            Return False
        End If

しかし、これは数値のみを受け入れます。.つまり-、渡した場合に true を返すval="2.5"か、val="5-10"

だから私の質問は、他のシンボル(><)のためにそれを作る方法です

4

3 に答える 3

1

構造チェックを行い、スペースを緩和するには、次のようなものを使用できます。

^(\s*(?:[-><])?\s*\d+(?:[.]\d+)?)+$

正規表現のデモを試してください。

これも受け入れます:1.5 - 10.3またはしかし、無効または以前に受け入れられ< 10たものを拒否します。< 10.2.1 - ..

更新 単一の数値の不等式のみを受け入れ (accept but reject )、減算で最大オペランドを受け入れる (accept < 10.2but reject ) ( @SebastianProskeで述べたように):>10 <521.2 - 3.41 -1 - 1

^(\s*[><]\s*\d+([.]\d+)?|\d+([.]\d+)?\s*(-?\s*\d+([.]\d+)?\s*)?)$

正規表現のデモ

PS : より正確に言うと、すべてを に置き換えて、\s改行[ \t]やその他の空白文字を受け入れないようにすることができます。

于 2016-01-08T10:30:29.293 に答える
1

次のようなものを使用する必要があります。

If System.Text.RegularExpressions.Regex.IsMatch(val, "^\s*?[<>]?\d+?\s*?[\-]?\s*?\d+?[.]?\s*?\d+?$") Then
   Return True
Else
   Return False
End If

このようにして、オプションで文字列の先頭にある < と > を一致させます。

編集:修正により、スペースが考慮されるようになりました。1-1-1 や 2.2 のような正規表現文字列を使用します。一致していません。

于 2016-01-08T10:21:08.193 に答える