ベストアンサー 111を含まないstringを表現する正規表現 2009/09/22 06:21 0と1のみを使い、さらに111を持たないstring全てを定義する正規表現ではどのように表せばいいでしょうか? みんなの回答 (2) 専門家の回答 質問者が選んだベストアンサー ベストアンサー mtaka2 ベストアンサー率73% (867/1179) 2009/09/22 09:51 回答No.1 ちょっとややこしいですが ^(110|10|0)*(11|1)?$ といったところでしょうか。 「111」が無いということは、1が現れるのは、基本的に「10」か「110」になります。それか0かの繰り返しで、 あとは、一番最後が1で終わる場合を考慮してます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (1) sakusaker7 ベストアンサー率62% (800/1280) 2009/09/22 22:04 回答No.2 なにかの課題のような気もしますが、以下のスクリプト(と正規表現)でたぶん期待通り動いているようです。 ARGF.each do |line| line.chomp! puts line if /^0*(?:1?1?0+)*1?1?$/.match(line) end 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピューターその他([技術者向] コンピューター) 関連するQ&A 正規表現であるStringの集合を定義する 次の特徴を持つStringの集合を定義する正規表現Qはどのように表せばいいでしょうか? 1.0と1のみを使うString 2.「接頭辞」の0の数が1の数より2つ多くない 3.「接頭辞」の1の数が0の数より2つ多くない 接頭辞とはあるStringの先頭から始まる全てのsubstringのことです。例として123456789の接頭辞は"", 1, 12, 123, 1234, 12345, ..., 123456789となります。 この正規表現Qによって定義されるStringの集合の例として "", 10, 01, 0101, 1010, ... 正規表現Qで定義できない集合の例は 0011, 1100, 1110100, 10101100, ... 0011には接頭辞00が存在し、これは0の数が1の数より2つ多いので(0の数は2で1の数は0)正規表現Qでは定義できません。 これは不可能でしょうか?不可能の場合文脈自由文法で定義は可能でしょうか? 正規表現について PHPにおける正規表現についての質問なのですが、 preg_match('#^/user/(?P<id>[^/]+)$#', $string) 第一引数の正規表現がいまいち理解できません。 ご教授のほど宜しく御願いします。 正規表現 正規表現について勉強中です。 先頭2文字をたとえばYQで入力させたい場合は どうマッチさせればよいのでしょうか? if string.match(/^YQ|[0-9]/) == null { nullの場合の処理 } としていますが、うまくいきません。 正規表現についてはまったくの初心者ですので、 笑わないでくださいね。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム Perlの正規表現 Perlの正規表現である文字列に文字列STRINGが含まれないようにするには ^(?!.*STRING).+$ と書くとググったら出てきました. ですが,?!について詳しいことまで書いてるサイトはありませんでした. ?!は具体的にはどのようなことをするのでしょうか? Javaの正規表現 Javaのプログラムで文字列に含まれるスラッシュを 全てバックシュラッシュに置換したくてreplaceAllを使用しています。 しかし、正規表現がよく分からず、エラーとなります。 どう記述すれば良いでしょうか? string.replaceAll("\\/", "\\"); ではエラーとなり、第二引数を\や\\\としてもダメでした。 正規表現にて質問があります。 テスト勉強をやっていて過去問をみたら正規表現の部分だけわからずにいます (1)α=(0|10)*2(1|00|010)+ (2)α=(ab|c)*c(bc|a)+ (3)α=(1|22)*a(333|4444)* (1)正規表現αが表す文字列内、文字列長が1のものすべてを列挙せよ (2)正規表現αが表す文字列内、文字列長が2のものすべてを列挙せよ (3)正規表現αが表す文字列内、文字列長が3のものすべてを列挙せよ (4)正規表現αが表す文字列内、文字列長が4のものすべてを列挙せよ の答えを教えてもらえないでしょうか? もしよろしければどうやってとけばいいかのアドバイスもお願いします 正規表現について Htmlのタグの属性を正規表現を用いて取得しようとしています。 たとえば <font size="2" face="MS 明朝"> の場合、 "2"と "MS 明朝" を取得したいのですが、 以下のように定義を "="から始まり、空白か">"迄と定義した所、 pattern = Pattern.compile("=(.*?)[ >]"); としてマッチングした所、 "2"と "MS がとれてしまいました。 "(ダブルクォーテーションの中の[ >](空白等)は判定しないような 定義に出来るのでしょうか。 宜しくお願いします。 正規表現について教えて下さい 正規表現について教えて下さい $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]*」が重複しているのが凡長だと思ってまして もっと短縮された書き方があれば教えてもらいたいです。 Rubyの正規表現について こんにちは!Rubyを勉強し始めたものです。 現在正規表現を勉強しており、以下のプログラム問題を解いています。 下記の「puts format_ssns~」部分がtrueになるようにメソッドを定義しなければならないのですが、どうしても「.」の「-」変換はなんとかなるのですが、同時に「234601422」にハイフンを挿入するのがうまくいきません…… 以下プログラムになります。 拙い質問で恐縮ですが、どうぞよろしくお願いいたします。 --- def format_ssns(string) #ここにプログラムを記入する形式 end puts "format_ssns finds and reformat any SSNs in the string" puts format_ssns("234601422, 350.80.0744, 013-60-8762") == "234-60-1422, 350-80-0744, 013-60-8762" 正規表現について 正規表現について、お聞きしたいことがあります。 たとえば、前回の年末ジャンボ宝くじの当選番号を正規表現で表わしたらどのようになるのでしょうか?すべての当選番号は数が多いですので、以下の条件で2つをお答えいただけたらと思います。 条件:各番号 は [0-9][0-9]組 [0-9]\{6\} と 表現すること 3等 下1ケタ9組 166000番 5等 各組共通 下3ケタ254番 正規表現について 正規表現について、お聞きしたいことがあります。 たとえば、前回の年末ジャンボ宝くじの当選番号を正規表現で表わしたらどのようになるのでしょうか?すべての当選番号は数が多いですので、以下の2つをお答えいただけたらと思います。 3等 下1ケタ9組 166000番 5等 各組共通 下3ケタ254番 正規表現で( , -, ] を表すと。 こんばんは。お世話になります。 正規表現を使ったプログラミングをしているのですが、一般に、) や、[ や - は正規表現の記号として使われますよね。 この文字を正規表現で検索したい時には、どうすればよいのでしょうか?. 誰か分かる方は教えてください。よろしくお願いします。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム 正規表現 正規表現の使い方を教えて下さい。 下記のソースでは、oPerl5Util.matchメソッドから戻って来ません。 正規表現文字列が悪いのか それともメソッドの呼び方の手順などが悪いのか 指摘して下さい。 import org.apache.oro.text.perl.Perl5Util; public class clsTestMain { public clsTestMain() {} public static void main(String[] args) { clsTestMain clsTestMain1 = new clsTestMain(); Perl5Util oPerl5Util = new Perl5Util(); String sPattern = "/[0-9a-zA-Z_!#$%&'*+-/=?^`{|}~]+(.[0-9a-zA-Z_!#$%&'*+-/=?^`{|}~]+)*@[0-9a-zA-Z-]+(.[0-9a-zA-Z-]+)*/"; String sTaget = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890@.jp"; try { boolean bResult = oPerl5Util.match(sPattern,sTaget); // ここで処理が止まる System.out.println(bResult); // ここにも来ない } catch (Exception oException) { oException.printStackTrace(); // ここにも来ない } } } 正規表現について 今lexのプログラムを書いているのですが、正規表現の部分でつまずいてしまいました。perlの正規表現なら分かるのですが、lexと少しかってが違い困っています。lexの正規表現でコメント(プログラム中で/**/で囲まれた部分)を読み飛ばす時には、どのような正規表現にしたら是非教えてください。なお/**/の中には文字列*/は出てこないと過程していいとのことでした。 解答お願い致します。 javaの正規表現について質問です。 javaの正規表現matchesに関して質問です。 正規表現を用いて文字列が半角数字のみで出来ているかどうかを判定したいと思っています。 調べたとろこ下記の正規表現で判定できそうなのですが、 正規表現のルールが理解できず困っています。 ------------------------------------------- String aaa = "0123456789"; //パターン1 aaa.matches("^[0-9]{10,11}$"); //パターン2 aaa.matches("^[0-9]+$") ------------------------------------------- パターン1 ^[0-9] → 文字列の先頭が0~9か判定 {10,11} → 10~11回繰り返す(繰り返すというのは[0-9]かどうかということでしょうか?) 12文字目に文字を入れた下記文字列でもfalseが返ってきました。 解釈が間違えている? String aaa = "0123456789a"; $ → 文字列の最後が[0-9]を10~11回繰り返しているかどうか? パターン2 ^[0-9] → 文字列の先頭が0~9か判定 +$ → 文字列の最後が???? すいません自分で書いてて混乱してきました。 どなたかアドバイス下さい。 これは正規表現とは言えないでしょうか? 正規表現を勉強しようと思っているのですが まずはじめに確認させて下さい。VBAです。 Sub 正規表現() If a Like "*a*" Then End If End Sub は正規表現とは言えないでしょうか? *を使っているからそう思いました。 Dim re As RegExp Set re = New RegExp を使わないと、正規表現といえないのでしょうか? よろしくお願い致します。 URL\正規表現@java perlメモさん?にPerlでのURLの正規表現はあるのですが Javaで使いたいと思います。 Pattern pattern = Pattern.compile("正規表現"); Matcher matcher = pattern.matcher(String); のステートメントを使う方法をご存知な方おられませんか? Perlメモさん?の正規表現をエディタにコピペしても 不正なエスケープエラー?がでてだめでした。 (http Urlのごちゃごちゃした奴の下から二番目) (「\b(?:」で始まる奴です) なのでエディタに貼り付けて\を\\に置き換えたものを 正規表現の部分にしたところコンパイルはとおりましたが、 正確にマッチしてくれませんでした。 よろしくお願いします。 正規表現 String u = "http://~~~~"; Pattern ptn = Pattern.compile("(http://|https://){1}[\\w\\.\\-/:]+",Pattern.CASE_INSENSITIVE); Matcher objMch = ptn.matcher(u); if (!objMch.matches()) return "error"; とした場合、 普通のURLなら大丈夫ですが、http://......?a=1&... などのようにパラメータが付くと error がかえされます。 ということで、? や & などでパラメータが付いても error が帰らないようにする正規表現を教えてください。お願いします。 正規表現を教えて下さい 「2つ目のドット"."までに、1つのドットと8文字以上の数字を含む」という正規表現で悩んでいます。 正規表現が得意な方、ヒントを頂ければ助かります。 正規表現について copy 等では正規表現は使えないのでしょうか。 UNIX環境が必要でSFUを入れましたが何かと面倒なので GNU等で必要なコマンドを用意しました。 ただ、SFUをアンインストールした時点で cp等で正規表現が使えなくなったようです。 copyを使うよりはUNIXのコマンドで正規表現を使います。 何か良い方法はありませんでしょうか? 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター OS(技術者向け) データベース プログラミング・開発 業務ソフトウェア ITシステム運用・管理 その他([技術者向] コンピューター) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など