問題タブ [regular-language]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
564 参照

javascript - DNF関数のパターン(javascript正規表現)

このようなDNF(選言標準形)を検証したいと思いますA*B+A'*C+C*D*E'。この目的のために、私は次のパターンを使用します。

このオンラインツールhttp://www.pagecolumn.com/tool/regtest.htmでjavascripttest()メソッドを使用してこのパターンをテストし ましたが、期待した結果が得られました。

次のコードを使用して、javascriptでパターンをテストしようとしました。

問題は、私にはわかりませんが、フラグ(このコード内)が「true」になる理由です。これは「false」である必要があり、でA*3およびCDという用語が発生しdnf="A*3+A*B+CD"ます。

私はこれをオンラインテスターでテストしました、そしてそれは言います:マッチはありません、私が正しいと思うこと。

0 投票する
1 に答える
887 参照

bnf - [af]?lex 正規表現の違い

これを行う方法がわからず、この操作を実行する方法についてオンラインで適切なリソースが見つかりませんでした[.] 2つの正規表現の違いである注釈付きのEBNF生成ルールを取得して、 a(na| f?)lex grammar specification rule[.] 問題は、これを通常どおり行う方法が見当たらないことです[.]{3} クリーネ代数を使用してこれを行う方法はありますか?文脈自由文法における代替との空の一致[?]

0 投票する
1 に答える
1123 参照

concatenation - 正規言語にクリーネ閉包のみが含まれている場合、それが2つの非正規言語の連結に由来する可能性はありますか?

クリーネ閉包演算子(例:(ab)*)のみを含む正規言語Lが与えられた場合、2つの非正規言語の連結によってLを生成できる可能性があることを知りたいですか?私は、Lが2つの正規言語の連結によってのみ生成できることを証明しようとしています。

ありがとう。

0 投票する
1 に答える
666 参照

java - DFA 正規表現マッチャーを使用して正規表現アサーション/ルックアラウンド (つまり \b スタイルの単語境界) を実装する方法

DFA ベースの正規表現マッチャー内で「単語境界」マッチを実装したいと考えています。誰かがこれがどのように行われるか教えてもらえますか?

背景を説明すると、現在「dk.brics.automaton」ライブラリを使用していますが、アサーション (\b単語境界など) をサポートしていません。私の主な目標は実際に正規表現の同等性を判断することであり、実際のマッチングを行うことではないため、DFA ベースのエンジンを使用する必要があります。

さらに、次の質問に対する回答は、これが可能であることを示しているようです: DFA ベースの正規表現マッチング - すべての一致を取得する方法は? 言うことによって

「ここでも、特別な命令を含むイプシロン遷移をシミュレーターに追加することでこれを管理します。アサーションがパスした場合、状態ポインターは続行されます。それ以外の場合は破棄されます。」

しかし、これが何を意味するのか、私にはよくわかりません。エンドポイントを見て、そのエンドポイントがアサーションを満たす場合にのみトラバースできる特別なタイプのイプシロン遷移でのみ実行できることを示唆していますか、または何らかの方法で構成された「通常の」イプシロン遷移で実行できますか? これらの「特別な」タイプのイプシロン遷移が必要な場合、これらをどのように決定できますか (つまり、標準の DFA に変換できますか)?

これを実際に実装する方法の説明へのポインタは大歓迎です。

0 投票する
5 に答える
225 参照

php - 別の異なる特定の文字列で囲まれていない特定の文字列に一致する正規表現

別の別の特定の文字列で囲まれていない文字列と一致する正規表現が必要です。たとえば、次の状況では、コンテンツを2つのグループに分割します。1)2番目の{Switch}の前のコンテンツと2)2番目の{Switch}の後のコンテンツ。{my_string}で囲まれているため、最初の{Switch}とは一致しません。文字列は常に次のようになります(つまり、{my_string}ここにあるコンテンツ{/ my_string})

これまでのところ、私が知っている以下のものはまったく近くないものを手に入れました:

[^](演算子ではない)を特定の文字列と別の文字で使用する方法がわかりません。

0 投票する
3 に答える
1886 参照

regex - 英語のみの特殊文字の正規表現

a-zA-Z0-9空白や特殊文字と同様に一致する正規表現が必要ですが、フランス語やスペイン語などの他の言語ではなく、英語の空白/特殊文字のみが含まれます。

ありがとう。

0 投票する
2 に答える
169 参照

php - 正規表現:アンカーにimgが含まれていないリンクを解析する

通常のリンクを解析しようとしていますが、そのリンクとともに、テキストの代わりに画像が含まれている同様のリンクが存在する場合があります。

私はこのパターンを使用しています:"#_blank\">(.*?)</a>#is、しかしこれはアンカーに画像を含むリンクにも一致します。

画像を含まないものだけを解析するにはどうすればよいですか?

0 投票する
4 に答える
173 参照

perl - Perl: 配列要素を照合してから、PREVIOUS (5 インデックス後ろ) 配列要素を新しい配列にコピーする

基本的に私がやろうとしているのは、大きなテキスト ファイルを検索して、"ヒットが見つかりませんでした"、および識別子に一致するコピーを新しいリストにコピーします。この最初の部分は問題ありませんが、理解できないように見えるのは、配列の要素を正確に 5 つのインデックスをコピーする方法です (これはidentifier) を別の配列にコピーします。

私はこのようなものを試しました、

[-5] の大量のバリアントを使用しましたが、どれも機能しませんでした..一致が見つかった場合に、前の要素を逆参照して取得する方法に関するドキュメントが見つからないようです。これをコーディングする方法を知っている人はいますか?

どうぞよろしくお願いいたします。

アンドリュー

0 投票する
2 に答える
911 参照

regex - DFA を使用して Context-Free Grammar で指定された正規言語を解析し、解析ツリーを生成できますか?

ご存知のように、DFA を使用して通常の言語で文字列を検証できます。

例 1. L=ac(b)*bcb|ad(b)*bb. 文字列「acbbbcb」は、DFA によって正しいと検証できます。

また、正規言語をCFGで表現できる場合もあります。

例 2。

  • S -> "a" A "b"
  • A -> "c" B "c" | "d" B
  • B -> "b" B | 「ば」

上記の CFG によって生成される言語は、例 1 の正規表現にすぎません。

つまり、DFA を使用して、この CFG によって生成された (通常の) 文字列を検証できます。しかし、どうすれば対応する構文木を生成できるでしょうか?

0 投票する
1 に答える
2420 参照

regex - CFG が正規言語のみを生成することがわかっている場合、対応する正規表現を取得できますか?

ご存知のように、通常の文法が与えられた場合、その正規表現を取得するアルゴリズムがあります。

しかし、指定された文法が文脈自由文法である場合 (ただし、通常の言語しか生成しない)、次のようになります。

  • S->aAb
  • A->bB
  • B->cB|d

    一般的に正規表現を取得できる既存のアルゴリズムはありますか?

    ありがとう!</p>