• ベストアンサー

js 正規表現

<br>が三つ以上連続する場合にマッチさせたいのですが、<br>の間に不定数の空白がある場合も対応したいです。(投稿すると空白が消えてしまうので「空白」に置き換えています。) 例 '<br> 空白<br>空白空白空白<br>' 色々調べているのですが、どうしてもわかりません。 ご存知でしたらよろしくお願いいたします。

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

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

1つ以上の空白なら、<br>空白+<br>空白+<br> です。 0個の場合(何もない場合)も含むなら、<br>空白*<br>空白*<br> です。 「正規表現 繰り返し」でググりましょう。 できれば、今後のことも考えて「正規表現 入門」あたりを読むといいかと。

natyo4235
質問者

お礼

ありがとうございます。わかりにくかったかもしれないので投稿し直します。ありがとうございました。

関連するQ&A

  • js 正規表現 3つ以上の場合にマッチさせたい

    <br>の3つの連続のみにマッチさせたいのではなく、<br>の前後に空白があってもなくても「空白*<br>空白*」が3つ以上続けばマッチさせたいのですが、以下でマッチしない理由がよくわかりません。 空白空白空白<br>空白空白<br>空白<br>空白空白<br>.replace(/(.*<br>.*)\1{3, }/g, ''") ご存知でしたらよろしくお願いいたします。

  • 正規表現について

    お世話になります。 ●●● ●●● という文字列かどうか判断する正規表現を作成したいです。 条件としては、 ・「文字1 (←全角スペース)文字2」という感じで、文字1と文字2に全角スペースが挟まれている感じで、文字列の先頭にも末尾にも空白文字は入ってはいけない(真ん中に1つのみ) ・文字1と文字2には、数字・空白以外の文字が入る(主に感じ・ひらがな・カタカナが入る)(文字数は一文字以上) といったところです。 自分で作成した正規表現は、 $pattern = '/^([\d\S])+ ([\d\S])+$/'; if( !preg_match($pattern,$chkStr) ) print "マッチしていない"; } なんですが、どうもマッチしてほしい文字にマッチしていないようなのです。 お手数ですがご教授ください。

    • ベストアンサー
    • PHP
  • 正規表現の書き方について

    $a=aaaaaaあああ1111いいい2222; 上記の$aを <br>aaaaa<br>aあああ<br>1111いいい<br>22222<br> このようにしたいのですが、 条件1:半角英数字の頭に<br> 条件2:半角英数字が5つ続いたら<br> としたいのですが、正規表現の記述方法で悩んでいます。 $b=preg_match([a-zA-Z0-9],$a)がに該当したら これで受け取ったものをpreg_replace<br>で挟む?のでしょうか。 そもそも条件は1つ以上指定できないのかもしれませんが・・・。 何かご存知の方いましたらご教授お願いいたします。

    • ベストアンサー
    • PHP
  • 以下の場合の正規表現の書き方を教えて下さい。

    以下の場合の正規表現の書き方を教えて下さい。 「XXXにはマッチするがXXXYYYにはマッチしない」を一つの正規表現文字列で実現するには、どう記述すればよいですか? 例えば、「マイナス」にはマッチするが、「マイナスイオン」はマッチさせたくない場合です。 この例の「イオン」の部分は今のところ一種類で良いのですが、もし可能でしたら複数種のワードに対応できると嬉しいです。(マイナスイオンに加えて、「マイナスドライバー」もマッチしないなど) なんか間抜けな質問ですがよろしくお願いします。

    • ベストアンサー
    • Perl
  • 正規表現中の()について

    正規表現中の()について 繰り返し正規表現を行い、マッチ部分を配列に入れる場合の疑問です。 今回、while文を使わずに書いてみようとしています。 #3個以上数字が連続していたら、配列へ入れる。…(1) my @data = ( $str =~ /\d{3,}/g ); #3個以上連続している、同じ文字を取り出して、配列へ入れる。…(2) my @data = ( $str =~ /(.)\1{2,}/g ); 1つめのほうは期待通りに動きました。 が、2つめは正規表現内の()で囲まれた範囲しか、配列に入ってくれませんでした…。 具体的には、$str='AAABBB'なら、 @data='A','B'になってしまいました。(AAA,BBBを配列に入れたい) たぶん、while文と$&を使えば書けそうだとは思いますが、 今回は、この書式で期待通りに動かす方法を知りたいです。 AAA,BBBを配列に入れるにはどのように書けばよいでしょうか? どうか、ご教授ください。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • 正規表現で分からないことがあります。

    正規表現で数字の間に「,」が入る場合と入らない場合があるのですが、どう書けばいいのでしょうか? 例えば、 1 1,2 0,1 122 等様々なパターンがある時、これらをヒットさせるにはどうすればいいのでしょうか? \d+だけだと、コンマのところでバラバラになってしまいます。 一回で全てをマッチさせる方法はありますか? 使用しているのはPHPです、よろしくお願いします。

    • ベストアンサー
    • PHP
  • 正規表現[a-z0-9\-\.]* の意味を教えて

    [a-z0-9\-\.]* の意味を教えてください。 preg_matchで確かめてみようと思ったのですが、 よく分かりませんでした。 「半角英小文字」か「数字」か「ハイフン」か「ドット」だと思ったのですが、 「半角英大文字」でも、「""」でも「空白」でも「日本語」でも、1が返ってきました。 「*」を調べたら、「直前の表現の0回以上の繰り返しにマッチ」て書いてあったのですが、 「0回以上」の意味が分かりません。 「すべてに当てはまる」ということなのでしょうか?

    • ベストアンサー
    • PHP
  • 全角カタカナの正規表現

    if (preg_match('/[ァ-ヶー]+/', $value, $match )) { print ("$value"."はカタカナです。"."($match[0])"."<br />") } else { print ("$value"."はカタカナではない。<br />"); } という感じで全角カタカナにマッチさせる正規表現を使いたいのですが、このやり方だと「全角カタカナを含んでいる…」という表現になってしまいます。ある文字列が「すべて全角カタカナである」という正規表現を考えているのですが、なかなかうまくいきません。逆引きのサンプルなんかでもなかなか見つからなくて困っています。  同様に「すべて平仮名にマッチ!」というのにも応用できると思うのですが、なかなかうまく行きません。  是非、そのやり方やヒントをおしえてください。  マルチバイト対応なので[ぁ-ん]のような形で表記できます。またPerl互換(preg_match)で作っているので、Perlに詳しい方も是非是非おしえてください。

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

    正規表現についてです 「婚活」や「生活」の様に「〇活」という例を「少納言」を利用して集めたいのですが、その際 検索方法の前文脈や後文脈は正規表現で表す場合はどうすれば良いのでしょうか? 回答例としては↓ 検索→空白 前文脈→○○ 後文脈→○○ の様に答えて頂けると有難いです 更に解説があると今後助かるので良ければお願いします

  • php正規表現について

    こんばんは。夜遅くですが質問させていただきます。 正規表現に関する質問なんですが、仮に contents:yazirobee contents:gokuu contents:tyaozu contents:pikkoro contents:togasi という文字列があったとします。 この文字列の最後に<br />をつけたい場合、 例 contents:yazirobee<br /> contents:gokuu<br /> contents:tyaozu<br /> contents:pikkoro<br /> contents:togasi<br /> 正規表現ではどのように書けばいいでしょうか? ereg_replace("contents:.*","contents:.*<br />",$str) などとおけば、文字列自体が、contents:.*<br />となってしまいます。 pikkoro,tyaozuなどの文字列を崩さずに<br />を付加する方法を教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう