Perlの正規表現を使用して、特定の条件を満たさない場合にエラーメッセージを表示する方法

このQ&Aのポイント
  • Perlでの正規表現を使用して、特定の条件を満たさない場合にエラーメッセージを表示する方法について質問です。
  • 条件として、小文字、半角英数字、一部の記号のみで2~32文字以内という制約があります。
  • また、使用できる記号はハイフン、アンダーバー、ドットのみで、先頭及び末尾には使用できません。
回答を見る
  • ベストアンサー

文頭・文末の記号をチェック

お世話になります。 Perlでの正規表現について質問させていただきます。 とあるフォームに入力した値が、特定の条件を満たさない場合に エラーメッセージを表示させたいのですが、うまくいきません。 以下に条件を記載いたします。 条件 1. 小文字、半角英数字、(一部の)記号で2~32文字以内。 2. 使用できる記号は、ハイフン(-)・アンダーバー(_)・ドット(.)のみ。 3. 上記記号が使用できるのは文中のみで、先頭及び末尾には使用できない。 当方、Perl初心者でして、 解説サイト等から、見よう見まねで試してみたところ、 条件1と2は、何とか成功したのですが、 3の記述の仕方がどうしてもわかりません。 どなたか、おわかりの方がいらっしゃれば ご教授いただけませんでしょうか。 if($FORM{"account"} ここの記述の仕方がわかりません{ $msg = '文頭・文末に記号を使用する事はできません'; &error; }

  • Perl
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.2

unless(/^[0-9A-Z][-\.\w]+[0-9A-Z]$/im){print "ERROR"}

hige_bear
質問者

お礼

ご回答いただき、ありがとうございます! ご回答いただいた書式を、わたくしが添付しておりました書式に当てはめてみたところ、 無事に設定する事ができました! ただ、なぜあの記述でそうなるかはイマイチ理解できずにいます。 今後も勉強していきたいと思います。 本当にありがとうございます!

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

逆に「最初や最後にはどんな文字が使えるのか」はわかりますか?

hige_bear
質問者

お礼

その後、ANo.2様からいただいた回答を参考に試したところ、 無事に設定する事ができました! ANo.1様も、ご回答いただきありがとうございました!

hige_bear
質問者

補足

ご回答いただき、ありがとうございます! 最初と最後に使える文字は、半角英数小文字のみです。 ハイフン(-)・アンダーバー(_)・ドット(.)は、最初と最後でなければ使用可能です。 よろしくお願い致します。

関連するQ&A

  • ワードで文末の?!」の記号をぶら下がりできない

    ワードを使用して、文末で? ! 」の記号をぶら下がりさせることができません。 私は趣味で小説(20×20の原稿用紙)を書いているのですが、vercical editorというエディターソフトを今まで使用していました。ですが、そのエディターで制作した文章をコピーして、ワードにペーストしたのですがどうも文末がおかしいのです。 色々調べてみたら「ぶら下がり」が必要なようで、自分なりに調べてやってみたのですが文末で? ! 」の記号をぶら下がりさせることがどうしてもできません(過去の質問を検索してみましたが、見つからずにネットの世界を四時間以上迷い続けております……)。 ・句読点はぶら下がりできました。(一行20文字) 12345678901234567890。←句点は一行に収まりました。 12345678901234567890?と収めたいのですが、実際は↓ 1234567890123456789 ←0が二行目に行ってしまい空白ができます。 0? ?」!は0の文字と一緒に二行目に改行されてしまいますが、これはワードというソフト(2003を使用していますが、同時に2010の体験版も使用しています)の特性なのでしょうか?(エディターでは問題なかったです) もしワードに詳しい方がいらっしゃいましたら、教えていただけると幸いです。 よろしくお願い致します。

  • アドレスに入れる絵文字(記号?)のようなもの 教えて下さい

    携帯のアドレスを変えようと思っています。ハイフンやアンダーバーなど記号をつかった絵文字のようなものを入れたいのですが、なにか面白いやつがあったら教えて下さい

  • カーソルが、文末に飛ばないことです

    カーソルが、文末に飛ばないことです  みなさん、こんにちは、大宇宙です。以下のとおり質問します。  au A5522SA SANYOの携帯電話を使用しています。  メールなどの本文を入力して日記や、仕事のメモを書いています。長い文章だと何回にも、分割して、何日もかけて入力することになります。記入できる最大の文字数は、全角で10,000文字です。  不便と思うのは、文章を追加しようとするときに、カーソルが、文末に飛ばないことです。10000文字近くになるとカーソルを文頭から文末に移動するだけでも、何分もかかります。  このような時、何か解決策は、あるでしょうか?  どのように対処しているのでしょうか? 1.更新する文書を開いたときに、文末にカーソルが飛ぶ携帯電話、ノキアに、交換する? 2.更新する文書を開いたとき、文頭にカーソルがあるが、文中どこにカーソルがあっても、文末にカーソルを飛ばせる携帯電話、NEC に交換する? 3.日付や●などの記号を入力して区別できるようにして、文頭から文章を入力していく。 4.携帯電話の能力の限界と悟って、我慢強く、カーソルが文末に届くまで待つ。 5.長い文書を初めから打たないので、不便に感じない。関心が無い。 6.その他  たとえひとつだけでもよろしく教授方よろしくお願いします。  敬具

    • ベストアンサー
    • au
  • ヒンディー語をキーボードで入力_文末の記号

    ヒンディー語の文章を入力する時に、疑問符が出て来ましたが、キーボードのどこを押せばよいのか分かりません。 疑問符の入力の仕方を教えて下さいませんか? ついでに、使うことがあるのであれば、感嘆符の位置もお願いします。 また、通常、文末の記号(ダンダー(।)、疑問符(?)、感嘆符(!))を入力する時、記号の前(文末の文字と記号の間)に、スペースを入れますか? よろしくお願い致します。

  • Texで[0:0]を文頭でつかいたいのですが。

    pLatex2εを使っています。文頭で[0:0]と言う記述を書きたいのですが、どのような設定が必要なのでしょうか。\[0:0\]としてしまうと[ ]が表示されず、0:0となりそれに続く文字が改行されてしまいます。文頭に[0:0]と書いてしまうとIllegal unit of measure (pt inserted) とエラーが出てしまいます。文中ではちゃんと表示されるのですが。

  • 文末に☆や♪をつける男性

    30代女性です。 私は普段、携帯メールは仕事の業務連絡や、友人との約束事程度の使用しかしていません。 私自身は、文字+アクセント程度の絵文字程度で、わりとさっぱりしたメールです。 時々、知人男性の目上の方で何人かそういう方がいらっしゃるのですが、 「よろしく~☆」とか、「また是非お会いしましょう♪」みたいな感じで、文末の☆・♪だけが、やたら幼稚に感じてしまい、モヤッとしてしまいます。 (笑)とか、顔文字はそんなに気にならないのですが、☆とか♪はどうも気になります。 小学生が好きそうな記号だと思うので、幼稚なイメージになってしまいます。 もし、親しくなれば、(ハート)も加わるのだろうかと、マイナスイメージ妄想が膨らみます(余計なお世話ですが)。 あまり意味は無いのだろうな…とは思うものの、40歳以上の方で、文末に☆や♪を付ける男性は、実際どういうタイプの方なのでしょう…。 実際、幼稚なのか、単なる記号のチョイス幅が狭いだけなのか…。 時々、この記号を目にしては、全然フレンドリーになれない自分が辛いです(涙) どうぞ宜しくお願い致します。

  • WORD2003とOneNote2003において自動的に文頭を下げる方法

    私は、文書を書くときに、その文の性質に応じて、それが理由を示す物であれば文頭に∵を、それが結論を示す物であれば⇒を文頭につけて、記述しています。 具体的に示すと、 ∵おなかがすいたので ⇒ご飯を食べることに決めた などという具合にです。 しかしこの場合、理由が複数になると不都合が起こるのです。 例えば、 ∵おなかがすいた _ちょうど美味しい店がある _そのうえ先月は昨日はちょうど給料日で残業をいっぱいした月だったから財布にお金がいっぱい入っている ⇒その店で食べることにした。 というように理由が複数になると、∵の記号の下でわざわざ_のようにスペースを打たないといけないし、 またその文章が長くなって右端で折り返された場合には∵などの記号の下の部分に文頭が来てしまいます。 この2点の不都合のせいで、せっかく記号をつけてその文章の性質の識別を容易にしようとしたのに、記号が文書の中に埋もれてしまい困っています。 そこで、どうにかして記号の下は自動的に文字が来れない様にしたいのですが、どうしたらよいのでしょうか? 自分が指定した文字をきっかけにインデント処理が発生するという設定ができればよいのですが、そのような機能はWORD2003およびOneNote2003についているのでしょうか? なお、箇条書きの機能は使いたくないので、これ以外の方法を教えてください。 よろしくお願いします。

  • FlashMX:外部swfファイルの読み込みについて

    FlashMXで動画を作成しています。 外部のswfファイルを読み込んで表示させていて、ふと思ったんですが、このswfファイルのファイル名に全角文字やハイフンやアンダーバーのような記号文字が含まれていると、サーバーにアップした場合にエラーの元になるのでしょうか? よかったら、教えてください。 お願いします。

  • ホームページ転送中に「アクセス権限がありません」とエラーが。。。

    ホームページを作成して、登録するために転送しようとしたのですが、 あるファイルに対し「アクセス権限がありません」とエラーがでました。 ファイル名に全角文字を使っていたので、半角に直しました。 記号も「-(ハイフン),_(アンダーバー)」しかつかっていません。 しかし! またまた同じエラーが出てしまいました。 ひょっとしてスペースも使っちゃダメなんですか? 他に何か原因はありますか? よろしくお願いします。

  • 「-」ににた記号の入力方法は

    記号で、ハイフンに似たもので、ただ線が真中ではなく下に引かれている記号がありますが、あれはどう言う意味の記号でしょうか。それと、ときどきメルアドにその記号を使用している人がいますが、私はその記号の入力方法がわからなくて、顔文字を入力して、そこから不要な記号を削除して入力しています。いい入力方法をお教え下さい。

専門家に質問してみよう