このようなもの?
^(?:[a-zA-Z0-9&.')#*:;<>&`=%?@\}!{(,_+-/$ \[\]\\]+|"[a-zA-Z0-9éèêëËÉÈÊàâÀÂîïÎÏçÇôÔûÛùÙ&`.')#*:;<>&=%?@\}!{(,_+-/$ \[\]\\]+")+$
これは、最初の文字セット (基本的なラテン文字、数字、さまざまな記号) または引用符で囲まれた 2 番目の文字セット (フランス語の文字など) のいずれかに一致します。IgnoreCase
caseオプションを使用すると、これを少し単純化できます。
^(?:[a-z0-9&.')#*:;<>&`=%?@\}!{(,_+-/$ \[\]\\]+|"[a-z0-9éèêëàâîïçôûù&`.')#*:;<>&=%?@\}!{(,_+-/$ \[\]\\]+")+$
ここでテストできます。
更新部分的な入力に一致する式が必要なようです。たとえば、hello "é
受け入れられる必要があります。一般に、これは非常に難しく、通常は 2 つのパターンを使用することをお勧めします。1 つは完全な入力を検証するためのもので、もう 1 つは部分的な入力を検証するためのものです。
部分入力をサポートするには、これを使用します。
^(?:[a-z0-9&.')#*:;<>&`=%?@\}!{(,_+-/$ \[\]\\]*|"[a-z0-9éèêëàâîïçôûù&`.')#*:;<>&=%?@\}!{(,_+-/$ \[\]\\]*(?:"|$))+$
"
末尾をに置き換えたことに注意してください"|$
。これにより、引用されたテキストを閉じるか、文字列の最後で終了することができます。ただし、テキストの入力が完了したら、引用されたテキストを確実に閉じたい場合は、完全なパターンを使用する必要があります。