web-dev-qa-db-ja.com

Googleスプレッドシートのデータ検証で正規表現を使用する

特殊文字の入力を禁止するために、Googleスプレッドシートのデータ検証で正規表現を使用しようとしているため、基本的に許可されるセットは[a-zA-Z0-9,./()]である必要があります。

次の=REGEXMATCH(TO_TEXT(range),"^[^a-zA-Z0-9,./()]")でカスタム数式入力を使用していますが、許可セットに含まれるものを含むすべてを拒否するようになりました。

次のバリエーションも試してみましたが、結果は上記と同じでしたが、すべて拒否されました:

=REGEXMATCH(TO_TEXT(range),"^[a-zA-Z0-9,./()]")

=REGEXMATCH(TO_TEXT(range),"[a-zA-Z0-9,./()]")

=REGEXMATCH(TO_TEXT(range),"[^a-zA-Z0-9,./()]")

=REGEXMATCH("[a-zA-Z0-9,./()]")

=REGEXMATCH("[^a-zA-Z0-9,./()]")

=REGEXMATCH("^[a-zA-Z0-9,./()]")

=REGEXMATCH("^[^a-zA-Z0-9,./()]")

私は途方に暮れている、私は正規表現で作業することに慣れていないので、いくつかの助けを本当に感謝します。

4
GuiNetto

正規表現は^[a-zA-Z0-9,./()]*$である必要があります。末尾の$は文字列の終わりを意味します。これにより、コンテンツ全体が指定された文字で構成されます。

また、通常、範囲をデータ検証式に渡しません。範囲の左上隅への参照である必要があります。たとえば、範囲がA2:E20の場合、データ検証の式は次のようになります。

=REGEXMATCH(TO_TEXT(A2), "^[a-zA-Z0-9,./()]*$")

この式は、相対参照の処理方法に従って他のセルに対して解釈されます。これは、条件付き書式設定と同じ動作です。

5
user79865