特定の定義された文字または文字のセットを除くすべての文字に一致する正規表現を定義することは可能ですか?
基本的に、文字列をコンマ(、)またはセミコロン(;)で分割したかったのです。だから私はそれがコンマまたはセミコロンに出会うまですべてにマッチする正規表現でそれをすることを考えていました。
特定の定義された文字または文字のセットを除くすべての文字に一致する正規表現を定義することは可能ですか?
基本的に、文字列をコンマ(、)またはセミコロン(;)で分割したかったのです。だから私はそれがコンマまたはセミコロンに出会うまですべてにマッチする正規表現でそれをすることを考えていました。
回答:
[^,;]+
使用している正規表現の実装が指定されていません。それらのほとんどには、Split
区切り文字を取り、それらで分割するメソッドがあります。「通常の」(なしの^
)文字クラスを使用したい場合があります。
[,;]+
文字クラスを使用します。キャレットで始まる文字クラスは、クラスにないものと一致します。
[^,;]
これを使って:
([^,;]*[,;])*
(?:([^,;]*)(?:[^,;]|$))
」(キャプチャしない括弧を使用したPCRE)を使用できます。フィールドの後、またはレコードの終わりのカンマまたはセミコロンの代替手段は、物事をよりよくします。空のフィールドが許可されているかどうかも検討してください。