• ベストアンサー

正規表現で「高」という文字を含まない文字列を

Wiki を使っているのですが、その中で、正規表現を利用して、ページのテンプレートを変えることができるものがあります。 ページのタイトルに、「高」が含まれない場合ということを書くのはどうすればいいのか、教えてください。ネットを調べてみると、 [^高] か / ^高 / でいいのではないかと分かったのですが、うまく動作しません。 よろしくお願いいたします。

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

#2です。 申し訳ありません! 大ボケかましてました!!! [(「高」以外の全ても文字)] は [^高] でした! なので、ご質問の件は ^[^高*]*$ です。 ただし、これが正常に動作する条件として ・正規表現に漢字が使用できる ・^が検索範囲の先頭、$が検索範囲の末尾にマッチする →改行を含む場合、^が行頭,$が行末とマッチする、という動作をするものもあります。その場合、たとえ「高」を含んでいても、含まない行が1行でもあればマッチします。 間違った情報で申し訳ありませんでした。

peterpeter
質問者

お礼

再度、お答えいただきありがとうございました。おかげさまでうまくいきました。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

正規表現自体にも、方言があるので、比較的一般に使われれいるもので説明します。 なお、漢字が扱えるものとして話をします。処理系によっては漢字が使えない場合もあります。 あえて正規表現だけで書くなら ^[(「高」以外の全ても文字)]*$ です。「(「高」以外の全ても文字)」はそう記述する、ということではなく、本当に全ての文字を並べる、ということです。 ^:先頭 *:任意の回数の繰り返し(0回以上) $:末尾 ということで、高を含むとマッチしません。 が、決して現実的なコードではありません。 [^高] は「"高"以外の文字」という意味になります。ですから 「高低」 は「"高"以外の文字」である"低"を含んでいるので、マッチします /^高/ ですが 処理系によっては、正規表現は/と/で括る、という文法のものがあります。その場合は正規表現としては ^高 となります。これは「先頭が高」ということなります。 「高低」 は「先頭が"高"」なのでマッチします 「低高」 は「先頭が"高"」ではないのでマッチしません

  • notnot
  • ベストアンサー率47% (4849/10263)
回答No.1

正規表現で、「~~を含まない」ということは表現できません。 通常は、正規表現を使うプログラムの方で、 if(~~を含むかどうかチェック) { ... } else{ ~~を含まない処理を記述 } のようにします。

関連するQ&A

  • 正規表現で文字を抜き出したい

    -----------------------ファイルの中身----------------------------- 8 個のファイル x,Xxx,xxx バイト ファイルの総数: 12400 個のファイル 419,000 バイト 8000 個のディレクトリ 280,284,000 バイトの空き領域 XXXXXXXX ------------------------------------------------------------------ 上記のものが一つのファイルの中にいくつか存在し、 その中の『ファイル総数:』~『バイトの空き領域』を 正規表現を使用して、VBSで抜き出したいと思っています。、 "ファイルの総数:[^バイトの空き領域]*バイトの空き領域(?=\r)" という正規表現を作成したのですが、うまく動作しません。 どのような正規表現を使用したら良いでしょうか。 どなたか、上記の抜き出す文言を示す正規表現をお教えください。

  • 正規表現で文字列を区切りたい

    PHPで、正規表現で文字列を分割する方法がわかりません。 やりたいことは、 1|ねこ|2|こあら|3|りす という文字列を、 1|ねこ 2|こあら 3|りす というように、直前の文字が数字でない|で区切りたいです。 区切るための関数は、mb_splitを考えています。 http://php.benscom.com/manual/ja/function.mb-split.php 調べていて、以下のページに書かれている話が近いのかなと思うのですが、 そこで述べられている正規表現の仕組みがよく分からないでいます。 http://okwave.jp/qa1849763.html ご教示よろしくお願いします。

    • ベストアンサー
    • PHP
  • 正規表現について教えてください。

    正規表現について教えてください。 Oracleで開発を行っている者ですが、ネットや本で調べても わからない箇所がありましたので、ここに質問として挙げさせていただきます。 ご教示いただけると幸いです。 現在、下記のようなデータが入ったテーブルがあります。 ---------------------------------------------------------------------------------- ID | SENTENCE          | REG_EXP ---------------------------------------------------------------------------------- 1 | <○○○:XXXX>      | [^<][^:]+ ---------------------------------------------------------------------------------- 2 | <○○○:XXXX>→<△△△:XXXX> | ---------------------------------------------------------------------------------- 3 | ■■■■■<○○○:XXXX> | ---------------------------------------------------------------------------------- このテーブルを使って、アプリを作っているのですが、 期待動作としては、SENTENCEの列に入っている文字列を REG_EXPの列に入っているデータ(正規表現のパターン)で マッチした文字列を切り取るようにしたいのです。 例えば、IDが1の場合は○○○が切り取られるのが期待動作です。 (注.この動作は、REGEXP_SUBSTR関数を用いてSQLで実行します。) お聞きしたいのは、IDが2の場合は△△△を、IDが3の場合は○○○を、 配列の最初の要素に入れるには、正規表現をどのように記載すればよいのか、ということです。 ○、△、■、Xの部分は英数字、日本語のどれが入るのかはわかりませんが、 <や→、:などの全角記号のフォーマットはこのままになります。。 IDが2の正規表現は[^<:→]+[^<:→]+[^<:→]+ で試してみたのですが、 うまく出来ませんでした・・・。 テーブルの線の調整がうまくできず、 表が見づらくて申し訳ありませんが、 正規表現に詳しい方、ご教示をよろしくお願いいたします。

  • 正規表現を利用した文字列置換

    javaにて、正規表現を利用して、半角・全角スペース、改行のみで形成されている文字列を空文字にしたいのですが、どのような正規表現を作成すればよろしいでしょうか?

    • ベストアンサー
    • Java
  • 正規表現について

    アメブロから独自ブログへ引越しを行うことになったのですが、 ペタしてね というリンク画像を毎ページに張り付けており、この画像リンクを一括で削除したいと思っています。 HTMLタグのパラメータが微妙にばらついており、正規表現の利用が必要かなと思っています。 専用のプラグインをインストールし、正規表現を利用して削除できることが分かったのですが、 正規表現の方法を数時間勉強してみましたが、結局どうすればいいのかわかりません・・・ 削除する画像リンクは以下のようなものです。 <a href="http://.........................."><img height="100" alt="ペタしてね" src="http://stat.ameba.jp/blog/ucs/img/decoPeta/pc/decoPeta_18.gif" width="100" /></a> width や hight がページによって微妙に違うようです。 どちらさまか、上記のようなタグをマッチングさせる正規表現を教えていただけませんでしょうか。

    • ベストアンサー
    • PHP
  • 正規表現で詰まっています。

    こんにちは。 今、正規表現で困っています。 ファイルの中身 <meta name="description" content=""> <title> B'zのサイトへようこそ </title> 上記のようなhtmlのソースなのですが、以下のように変換できるように正規表現を考えましたが、できませんでした。 変換したい表現 <meta name="description" content="B'zのサイトへようこそ"> <title> B'zのサイトへようこそ </title> titleタグで囲まれた文字を、metaタグのcontentの中に入れたいのです。 とても困っています。どなたかご教授下さい。よろしくお願いいたします。

  • 正規表現で「0」のみ抽出

    お世話になります。 正規表現について質問です。 1文字だけ0(ゼロ)がある場合にマッチする正規表現文が 分からず悩んでおります。。。 {0}では期待通りの動作しませんでした。 どうぞお願いします。

    • ベストアンサー
    • PHP
  • 正規表現を使って文字列置換を行いたい

    みなさんいつもお世話になります。 とあるプログラムの置換処理を行いたいのですが、 <a href="JavaScript:prfCallList(2,'27','27125','大阪市住之江区','')"> ↑の文字列の 「2,'27','27125','大阪市住之江区',''」 の部分(つまりprfCallList関数のパラメータ) が可変な文字列をいっきに <a href="shopmapItiran2.htm"> と変えたい時ってどのような正規表現になるのでしょうか? 私は正規表現を使うと楽らしいよってのは知ってるけど使った事がない・・・というレベルです。 ネットで一応正規表現入門みたいなサイトも読んでみたのですがよくわからず(T_T) お手数をおかけしますが、よろしくお願いします。

  • この正規表現のパターンについて

    この正規表現のパターンについての意味を教えてほしい。 【疑問】 $pattern ="/((?:.*?<p>.*?<\/p>){3}).*/mis"; ↓の中の (?:.*?<p>.*?<\/p>){3} ↓の中の 先頭の「 ( 」の次の、「 ?: 」の意味がわかりません。 これは、どのような意味があるのでしょうか? 【今までの流れ】 あることが知りたくて質問しました。 そのページは、こちら http://okwave.jp/qa/q7300031.html 教えていただいた、正規表現で、「出来た、出来た」と喜んで、ベストアンサーとして質問を締め切りました。 正規表現って、言語などの環境により、多少の違いがありますよね? そこで、phpの正規表現を勉強しようと、その正規表現を見ました。 しかし、なぜ、これらの文字があるのかわかりません。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 正規表現「ますか?ます?」

    プログラミングの正規表現について伺いたいことがあります。 タイトルにあるように「ますか?」と「ます?」をひっぱってくるためには、つまり、ある文字はあってもなくてもよい(この例ですと「か」)どのように書けばいいのでしょうか。 よろしくお願いします。