0

正規表現について質問があります....私にはまったくわからないので、どんな種類の助けも大歓迎です。

問題は次のとおりです。2 番目と 2 番目の最後の文字が「b」である a と b のすべての文字列で構成される言語を特徴付ける正規表現を定義します。

質問を開始する方法についてのアイデアはありますか?

どうもありがとう

4

3 に答える 3

1

あなた/質問の意味が

'a' と 'b' のみで構成される文字列の場合、2 番目と 2 番目の最後の文字は 'b' です。

これはおそらくほとんどの正規表現フレーバーで機能します (これを で囲む必要があるかもしれません/ /)

^[ab]b[ab]*b[ab]$
于 2012-10-21T03:12:06.020 に答える
1

これを解決するには、次のことが必要です。

  1. aまたはb:^(a|b)で始まる文字列を検索します。
  2. 2 番目の文字が abである `^(a|b)b
  3. as、bs、またはその両方の文字列が続きます。^(a|b)b[a-b]*
  4. 別のものがありbます:^(a|b)[a-b]*b
  5. a別のorで終わりますb:^(a|b)b[a-b]*b(a|b)$
  6. 次に、その正規表現に対して文字列をテストする必要があります。/^(a|b)b[a-b]*b(a|b)$/.test(string)

jQuery と JavaScript を使用した概念実証:

​$('li').each(
    function(i,el) {
        var text = $(el).text();
        if (/^((a|b)b[a-b]*b(a|b))$/.test(text)) {
            $(el).addClass('matched');
        }
    });​​​

JS フィドルのデモ

参考文献:

于 2012-10-21T03:14:57.617 に答える