【正規表現】 「A-BC-deFghi を除く」という書き方を教えてください。

これ以外に「A-BC-jkLmno」や「A-DE-Kolle」などが多数あり、
「A-BC-deFghi 以外すべて」を引っ掛けたいです。

不明なところはコメントなどでできる限り捕捉しますのでよろしくお願いします。

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2006/10/03 10:13:54
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:tikirou No.1

回答回数80ベストアンサー獲得回数8

ポイント60pt

^(?!A-BC-deFghi).+$

ちょっと環境がわかりませんが

これではどうですか?

URLはダミー

http://www.kt.rim.or.jp/~kbk/regex/regex.html

id:panana

ありがとうございます。

社内システムの設定に必要なんですが、「正規表現で指定しろ」としか言われなかったもので…。


で、書いていただいた式では結果として希望の挙動はしませんでした。

うまく行かない理由もわからないです。ごめんなさい。

-----

結局、元のロジックから見直すことになりました。

お騒がせいたしました。ありがとうございました。

2006/10/03 10:13:37
  • id:tikirou
    出来ればperlで使用しているとか
    何かのエディタで使用しているとか
    その辺りの情報がわからないので教えて下さい。
  • id:panana
    Webソフトのユーザー管理をしています。
    UIに正規表現の入力欄があるだけなので
    grep、Perl、Python…などがわかりません。
    そのページのソースを見たら判断できるのでしょうか…。
  • id:panana
    行頭に変な文章が残ってますね。
    そのユーザー管理で「A-BC-deFghi」というグループの人達を除く、という処理をしたいという文章の名残です。
  • id:b-wind
    単に指定したい文字以外にマッチさせたいだけでしょうか?
    それと2つ出てきているハイフンはどういう意味合いで使っていますか?
  • id:panana
    ハイフンはグループ名の一部なので、文字列として見たいです。

    <グループ名:人名>
    A-BC-deFghi:Aさん
    A-BC-jkLmno:Bさん
    A-DE-Kolle:Cさん
    A-BC-deFghi:Dさん



    というデータがあって、「A-BC-deFghi」の人以外を引っ掛けたいです。
    その「A-BC-deFghi以外の人」を正規表現で書かなきゃいけないんですが…
    何を試したか列挙できないくらい試してるんですが、どうも「-」の扱いがうまくいっていない気がします。
  • id:tikirou
    (?:(?!A-BC-deFghi).)*

    11文字で固定ですか?
    それとも A-BC-deFghiXXXX のようなケースもあり
    これも一致してはまずい?

  • id:panana
    A-BC-deFghiXXXXというケースもありえます。
    で、これは「A-BC-deFghi以外の人」という扱いです。
  • id:panana
    タイムリミット…
    とりあえず、一回帰ります。
    月曜まで試す手段がないので回答をいただけ場合は月曜に開きます。
    ありがとうございました。
  • id:harrypotter
    回答1の「希望の挙動はしませんでした」を、もう少し具体的に書いていただけると正解への糸口になるかと思います。
    たとえば「A-BC-deFghiXXXXも残ってしまってダメでした」とか。
  • id:panana
    おはようございます。コメントありがとうございます。
    回答1ではどの部門の人でも入れてしまいました。

    他のハイフンが入っていない部門名で試したところ、

    http://www.aster-world.com/soft/regexchk.html
    ここにある「正規表現チェッカー」の上の段(入力)に

    A-BC-deFghi
    A-BC-jkLmno
    A-DE-Kolle

    と入れて、正規表現(1)に「解答」を入れて実行を押した時に、
    下の出力の段に
    A-BC-jkLmno
    A-DE-Kolle
    だけがきれいに残るような表現ができないとダメなようです。

    例えば1の回答でチェックすると、何も出力されないですよね?
    (?:(?!deFghi).)* では、A-BC-jkLmno、A-DE-Kolleの文字列はきれいに残りますが、
    A-BC-やeFghiも残ってしまいます。

    うちのシステムの仕様が悪いんじゃないかという気がしてきました…。
    開発者とも話をしてみますが、何かわかりましたらよろしくお願いします。
  • id:panana
    やっぱりシステムの不具合でした。
    …夜中まで頑張ったのに…。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません