問題タブ [metacharacters]
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.
regex - Perlの正規表現でメタ文字補間を適切に停止および開始するにはどうすればよいですか
より簡潔になるように編集します、ご容赦ください。
「.」、「+」、「/」、「-」のいずれかの文字を含む可能性のある文字列を使用して、配列から grep できる必要があります。文字列は、ユーザーから取得されます。配列には、検索しているファイルの各行が含まれています(ユーザーがプログラムとインターフェースしている間、ファイルを開いたままにしないように、配列にファイルを詰め込んでいます。これは、cron上にあり、それを持ちたくないためですcron の実行時に開きます)、各行には、正規表現で使用される検索文字列の基礎となる一意の識別子が含まれています。以下のコードは、私が使用している grep ステートメントを示しています。プログラムで OUR と MY を使用して、すべての名前空間でアクセスしたい変数を使用できるようにし、サブルーチンでのみ使用する変数を使用できないようにします。問題を再現したい場合
アンカーを使用してコードを試すと、次のようになります。
プログラムからのこれ以上の活動は見られません。ユーザーからの入力を待っているかのように、ただそこに座っているだけです。これは私が期待したことではありません。検索パターンを固定したい理由は、検索パターンと同じ文字順序を持ち、正規表現評価で無視される追加の文字も含む、類似した名前のデバイスの例が非常に多くあるためです。それらが一致に含まれているという意味で、それらを無視したくありません。変数内の文字列の正確な一致を強制したい。
私のひどく経験の浅いコードと、私の問題を詳述するためのコミュニケーションの試みをざっと見てくれてありがとう。
r - R - 正規表現: 角括弧内に W メタ文字が機能しない
次の文字列を見てみましょう。
最初の単語を抽出したいと思います。^\\W*([a-zA-Z]+).*
そのために、最初のグループへの後方参照を含む次の正規表現を使用しています。
期待どおりに動作します。
それでは、文字列に数字とアンダースコアを追加しましょう。
新しい文字に一致するよう\\W
に置き換えます。[\\W_0-9]
今はうまくいかず、その理由がわかりません。\\W
中に入れるときに問題が発生するようですが、[]
理由はわかりません。ただし、正規表現は、PCRE を使用したオンライン正規表現テスターで動作します。
私は何を間違っていますか?