お客様の中に正規表現にお詳しい方はいらっしゃいませんか。 |
返信 |
・行の中で「全体としてはどこに何回出現してもしなくてもいいが、出現する場合は2回連続でのみ」としたい文字がいくつかある
・その文字同士は、それぞれが2回連続であっても、隣り合ってはいけない
・行の中で常に禁止したい文字列が他にいくつかある
・マッチ対象は行全体
・文字クラスの中に文字クラスや文字グループは入れられない
仮に文字AとBを2回連続のみ許可して、常に禁止したい文字をXとYとすると、
以下はマッチ対象としたい行
nnnnnn
AA
BB
nnAAnnBBnnAAnn
以下はマッチ対象となってはならない行
nnnA(1回なので)
ABnn(1回で、隣り合ってもいるので)
AABBnnn(隣り合っているので)
BBB(2回を超えるので)
AAAA(2回連続ずつだけど隣り合っていて結果的に2回を超えるので)
nnAAnnXnnAAnnBBnnY(他の禁止文字があるので)
という正規表現を1行で書きたいのです。
[^A]AA[^A]|[^B]BB[^B]で「2回だけの連続が1回」まではわかるんですがその先が。
テキストエディタの環境設定にぶっ込んで入力支援として使いたいため、1行の正規表現である必要があります。
ひどい頭痛なのです。どなたかお客様で正規表現にお詳しい方はお乗りでないでしょうか。
投稿者 zig5z7 | 返信 (1) | トラックバック (0)