0

現在、正規表現を使用してユーザー入力を照合しています([^=]*)(=[01])。ユーザーは信号名 (nnnann、n は数字、a は英数字) とその値、つまり 0 または 1 を入力します。

例: 101e10=1

次に、パターン t=N にも一致するようにパーサーを拡張する必要があります。ここで、N は数値を意味します。

例: t=5000

を使用して両方のケースに一致するように正規表現を拡張しようとしました([^=]*)(=[01])|(^t)(=[0-9]*)が、この式を使用すると、最初の部分はすでにパターン t=N に一致しています。

パターンtを除外して式の最初の部分と一致させるにはどうすればよい[^=]*ですか?

([^=]-[t]*)(=[01])|(^t)(=[0-9]*)orを使用してパターンを減算しようとしました([^=]*-[t])(=[01])|(^t)(=[0-9]*)が、どちらもうまくいきません。その上、どちらの試みも減算機能の正しい使い方ではないと感じています。

4

2 に答える 2

1

最初の正規表現を変更して、検証をより厳密にすることができます。

([01]{3}[a-z][01]{2})(=[01])

そして、2 番目の正規表現と組み合わせます。

([01]{3}[a-z][01]{2})(=[01])|(^t)(=[0-9]*)

または、最初の形式が 0 または 1 で始まることがわかっているので、次のようにすることもできます。

(^[01][^=]*)(=[01])|(^t)(=[0-9]*)
于 2013-09-19T12:52:43.887 に答える