- ベストアンサー
正規表現の展開
特定の正規表現にマッチする全パターンを出力する方法、もしくはCPANモジュールは無いでしょうか。 例えば、 my $pattern = "[a-z]"; some_sub($pattern); # 出力: a, b, c, d, e, f, g, h, i...z 以上、どうぞよろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- Tacosan
- ベストアンサー率23% (3656/15482)
- JavaJavax2
- ベストアンサー率22% (68/305)
- JavaJavax2
- ベストアンサー率22% (68/305)
関連するQ&A
- 秀丸の正規表現
秀丸の正規表現 http://pc.dearie.jp/hidemaru/replace/14.html 上記URLでメールの正規表現について解説があります。 [A-Za-z0-9\-\.\_]+@[A-Za-z0-9\-\_]+\.[A-Za-z0-9\-\.\_]+ この正規表現でメールの検索をおこなっています。この正規表現は理解出来ます。 .*([a-z0-9\-\.\_]+@[a-z0-9\-\_]+\.[a-z0-9\-\.\_]+)([^a-z0-9@\.\-\_]+).* キャプチャを使って正規表現でメールアドレスをマッチしているのは理解できます。 なぜ置換で、「\1,」とやっても、メールアドレスのみを取得できないのでしょうか? 実際に秀丸エディタを使ってやってみましたが、メールアドレスのみ取得することができませんでした。 検索ではメールアドレスにマッチするのに、なんでキャプチャが正しく動かないのかがわかりません・・・
- ベストアンサー
- その他([技術者向] コンピューター)
- 正規表現について教えて下さい
正規表現について教えて下さい $string = "LibrayMyUtil2File AppFile"; $pattern = '/([A-Z][a-z0-9]*)*([A-Z][a-z0-9]*)File/'; $replacement = '$2'; echo preg_replace($pattern, $replacement, $string);//Util2 App と表示される この例のように、「File」の前の単語に置き換えたいのですが、 このやり方だとpatternの「[A-Z][a-z0-9]*」が重複しているのが凡長だと思ってまして もっと短縮された書き方があれば教えてもらいたいです。
- ベストアンサー
- PHP
- メルアドをチェックする正規表現?
こんにちは,よろしくお願いします。JavaScriptでメルアドをチェックしようと次のような文字列を,patternという変数に代入して, var pattern = "^[a-z0-9\-_.]+@[a-z\-]+(\.[a-z\-]+)*com|net|org|edu|gov|mil|int|info|biz|name|pro|museum|aero|coop|[a-z][a-z]$"; 次のようにチェックしたのですが, if(mail.match(pattern)){・・・ "aa"など,2つ以上の小文字のアルファベット文字列にマッチしてしまいます。つまり,@が入っていなくてもマッチしてしまいます。実は,正規表現の解説書を見てこのような文字列としたのですが,JavaScriptでは不都合な点があるのでしょうか?ご存知の方がいらっしゃいましたら,ご教授ください。よろしくお願いします。
- ベストアンサー
- JavaScript
- 正規表現について
正規表現について質問が有ります。 プログラミング初心者なので、根本的な間違い等も犯している可能性もありますがご了承下さい。 今、javascriptを使ってフォームに入力されたメールアドレスの入力チェックを行おうとしています。 とりあえずはwebを漁って見つけたソースでチェックできる様にはなったのですが、もうちょっと拡張したいと思った所、つまずいてしまいました。 元のソースは if (!this.value.match(/^[\x01-\x7F]+@((([-a-z0-9]+\.)*[a-z]+)|(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))$/){ alert("error"); } という風にチェックをしており、 ******(@マークが無い) ***@(@の後半が無い) @***(@の前半が無い) などの基本的な形式に対してはチェックを行う様になっています。 しかし、hoge@hogeの様に書くと、適当に書いたドメインでもスルーしてしまいます。 そこで、ドメインのチェックも行おうとしているのですが、ここで詰まっています。 ちなみに今回は携帯のアドレスに限定してチェックを行おうと思っています。 javascriptでの正規表現について書いてあるページを見ながら下の様に書いたのですが上手く動作してくれません。 正規表現の書き方がおかしいのだろうとは思うのですが、どこがいけないのかよく分かりません。 if (!this.value.match(/^[\x01-\x7F]+@((([-a-z0-9]+\.)*[a-z]+)|(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))$/) || /*ここから下を追加*/ (!this.value.match(/@(docomo|ezweb|softbank)\.ne\.jp$/) || !this.value.match(/@i\.softbank\.jp$/)){ alert("error"); } 最初はもとからある基本的な入力形式のチェックを行い、また@後のドメインが携帯のドメインでない場合にエラーを返す。というつもりで書きました。 ですが、***@docomo.ne.jpとしてもエラーが返って来てしまいます。 原因を教えていただけますか? また、もとからあった正規表現が何をどういう指定しているのかもキチンとは理解していないので、教えていただけるとうれしいです。 よろしくお願いします。
- ベストアンサー
- JavaScript
- Perlの正規表現に関する質問です。
Perlの正規表現に関する質問です。 下記を実行した場合、$1~・・・には下記のどの正規表現に該当する値が入るの でしょうか? sub test{ my $text = shift; pos($$text) = undef; while ( $$text =~ m{ (\s*<) ( !-+ | !-+\s*(/|//)?\s*(.*?)\s*(/|//)?\s*-+ | (/)?([!a-z0-9\-]+)\s*((?:[a-z0-9\-]+\s*=\s*[\w\-/]+|[a-z0-9\-]+\s*=\s*".*?"|[a-z0-9\-]+\s*=\s*'.*?'|\s+[^<>]{2,})*)?\s*(/)? ) (>\s*) (.*?(?=(?:<!-+ | </?[a-z0-9\-!]+\s*(?:[a-z-]+\s*=\s*[\w\-/]+|[a-z0-9\-]+\s*=\s*".*?"|[a-z0-9\-]+\s*=\s*'.*?'|\s+[^>]{2,})*)\s*(/)?>?))? }sxgi ) { ・・・ }
- ベストアンサー
- Perl
- 正規表現の実行レポートは作成可能でしょうか?
開発言語:Perl(Win32) ヴァージョン:5.8.4.810 perl.exeのプロパティー参照 長文の正規表現にパターンマッチを試みているのですが、 本来マッチするはずの文字列に対して、マッチしません。 しかし、正規表現が長文のため、なかなかデバッグが進みません。 どのように、パターンマッチが進んでいるか見ることが出来ればデバック作業が早くなると思うのですが、 私はその方法を知りません。 そこで、質問なのですが、Perlが正規表現をどのように解釈して、パターンマッチを進めているか、確認する方法はないのでしょうか? できれば、パターンマッチ実行中、解釈している位置と、文字列をレポートとして出力する方法があれば、それを知りたいと思います。
- ベストアンサー
- Perl
- 正規表現の表現パターンについて教えて下さい。
こんばんわ、正規表現を使ってある文字列を検索するプログラムを勉強していたのですが、 eregi('(http://|https://)[a-z0-9./_\-]+',第二引数、第三引数) となっていたのですが、第一引数の最後の + の部分はどうゆう意味があるのでしょうか? 僕の理解では[ ]の間が検索する正規表現のパターンだと思っているのですが、、よろしくお願いいたします。
- ベストアンサー
- PHP
- 正規表現について
正規表現について質問をさせていただきます。 VB6.0にて正規表現を使用し、入力された文字のチェックを行っていますが どうしてもうまくいきません。 チェックしたい文字は A(半角アルファベット大文字1文字)または AAA(半角アルファベット大文字3文字)または (AAA)(半角カッコつき半角アルファベット大文字3文字)で 上記3パターン以外はエラーとしたいと思っています。 パターンは下記のように作成したのですが "(^[\(][A-Z]{3}[\)])|(^[A-Z]{1,3})" A、AAA、(AAA)以外でもA(AA)やAAAA等も正常ケースとして通過してしまいます。 パターンをどのように作成すればよいか教えて下さい。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- シェルで使われる正規表現について
シェル(UNIX)で使われる正規表現ですが、 メタ文字に、アスタリスク「*」があるのですが、 「A*Z」と「Ab*Z」でマッチするパターンですが、 例えば、以下の様な文字列があるとします。 AZ AbZ AbcZ AbcdZ AbcdeZ 「A*Z」でマッチさせると AZ AbZ AbcZ AbcdZ AbcdeZ となり、 「Ab*Z」でマッチさせると AZ AbZ となります。 何故、「A*Z」ではすべてがマッチの対象になるのですか。
- ベストアンサー
- その他([技術者向] コンピューター)
- DCP-J1200Nの印刷とスキャンができないトラブルについて相談します。
- Windows10でUSBケーブル接続されており、トレイ1への用紙送りエラーが表示されます。
- 特に関連するソフト・アプリはありませんが、ワイマックス回線を利用しています。
お礼
ありがとうございます。参考にさせていただきます。