問題タブ [qr-operator]
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 のコンパイル済み正規表現でエスケープする必要がある文字は?
Perl の qr{} コンストラクトを使用する場合、どの文字をエスケープする必要があるかを判断するのに苦労しています
無数の通常エスケープ文字 (#*.>:[]) を含み、別のプリコンパイル済み正規表現も含む、複数行のプリコンパイル済み正規表現を作成しようとしています。さらに、テスト目的で可能な限り厳密に一致させる必要があります。
エラー:
アスタリスクをエスケープしようとすると、一致に失敗します (D'oh 出力)。他の厄介な文字をエスケープしようとしても、一致は失敗します。エスケープするもののさまざまな組み合わせを試し続けることもできますが、ここには多くのバリエーションがあり、誰かが洞察を提供できることを望んでいます.
regex - Perlqr//と置換
私はGetopsを使用してユーザー入力を受け取る小さなプログラムを書いています。それに基づいて、プログラムはパターンをテキストと照合するか、一致したものをテキストに置き換えます。
私が抱えている問題は、置換部分を機能させることができないということです。マニュアルページのqr//エントリを見ています:http://perldoc.perl.org/perlop.html#Regexp-Quote-Like-Operatorsしかし、私はそれで運がありません。この場合、ドキュメントとまったく同じようにコードをモデル化しようとしました。一致パターンをコンパイルし、それを置換に置き換えます。
誰かが私がどこで間違っているのか指摘できますか?(セキュリティについてはあまり心配しないでください。これは個人的な使用のためのほんの少しのスクリプトです)
これが私が見ているものです:
-r "/ matt /" -iを指定して実行し、置換テキスト'matthew'をテキスト'matt'に入力すると、失敗します。どうしてこれなの?
編集:
答えてくれてありがとう!それは本当にとても役に立ちました。私はあなたの両方の提案を問題の実用的な解決策にまとめました。/gフラグの処理方法を少し変える必要があります。作業サンプルは次のとおりです。
regex - CからPerl5.12でqr//を作成するにはどうすればよいですか?
これは5.8と5.10で機能していましたが、5.12では私のコードがこの奇妙な非qrオブジェクトを作成します。
私のコードで作成されていないqr//を印刷すると、次のようになります。
私のコードは基本的に:
5.12の文字列から正規表現を正しく作成する方法を知っている人はいますか?
regex - 引用符で囲まれた正規 (qr) 式に修飾子を追加する方法
「i」などの正規表現修飾子を引用符で囲まれた正規表現に追加する簡単な方法はありますか? 例えば:
私が考えることができる唯一の方法は、print "$pat\n"
戻って置換(?-xism:F(o+)B(a+)r)
で「i」を削除しようとすることです?-xism: