問題タブ [backreference]
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.
drupal - Drupal 7: 逆参照の命名
Drupal 7 で Web サイトを開発しています。ノードから別のノードへの後方参照が必要ですが、それらの関係に名前を付ける必要もあります。A から B へ、B から A への異なる名前ですが、それらはすべて定義済みです (つまり、映画 A は映画 B を続編として参照するため、映画 B は自動的に映画 A を前編として後方参照します)。いくつかのモジュールを探しましたが、Drupal 7 の「対応するノード参照」しか見つかりませんでしたが、それは仕事の半分しか行いません。後方参照を作成しますが、名前は付けません。それで、後方参照を作成して名前を付けることができるモジュールを知っていますか? 私はあなたの答えにとても感謝しますありがとう
regex - Vim正規表現:上書きされたバックリファレンス?
計画:
ウィキペディアのローマ執政官のリストを取得し、データをCSVに入れて、執政官の観点からさまざまな世代の上昇と下降のグラフを作成できるようにします
データソースの例:
Vim検索:
だから本質的に:
- 最初の年を見つけます(または執政官の指示):
(\d+|suff\.) - 次のグループ化(これを外部グループと呼びましょう)は、最大2回まで見つける必要があります。
(outer group){,2} - これらの2つの外部グループのそれぞれについて、次を見つけます。
- プラエノーメン、オプションのピリオド付き(これが存在しない場合もあります):
(\w+.=) - だれも:
(\w+) - オプションのコグノーメン(以下のすべてのように、スペースを含みます):
(\s\w+)= - オプションのアグノーメン:
(\s\w+)= - オプションの反復(彼が領事を務めたn回目を示します)。データソースには8回を超える反復がありません(したがって、IとVで十分です)。
(\s[iv]+)= - 「シシニウス(サビヌス?)」のようなオプションの説明文:
(\s\(.{-}\))=
- プラエノーメン、オプションのピリオド付き(これが存在しない場合もあります):
(最後のコンマは行の終わりなのでオプションです。)
したがって、バックリファレンスは次のようになります。
問題は、その最初の外側のグループをキャプチャする方法がわからないことです。これは、\2と\3- \ 8の参照が、その2番目の外部グループを見ると上書きされるようなものです。
この置換の使用:
私はこの出力を取得します:
最初の外部グループ内のそれらのグループにアクセスできません。私はそれらが上書きされていると思います:それらは上書きされていますか?もしそうなら、これを回避する方法はありますか?
編集:元のタイトルVim正規表現(または互換性のある正規表現):外部グループが繰り返される場合に(グループ内の)グループを参照する方法は?
replace - 正規表現 - 特定の文字の前の最初の文字数を検索します (Excel の LEFT 関数のように)
@シンボルの前の最初の 10 文字を使用して、.csv ファイル (単一列) 内の電子メール アドレスを検索/置換する方法を見つけようとしています。CSV ファイルの例は次のとおりです。
私の望ましい出力は次のようになります。
@私はこれまでのところ、次のことを行うことで、およびそれに続くすべてを取り除く方法を見つけました。
検索: (.*)@.*
置換: \1
\1に含まれるものの最初の 10 文字のみに置き換えることを指定する の後に何かを追加できることを願って います\1。
アイデアはありますか?
regex - 固定数の繰り返しで構成されるグループの構成要素への逆参照
x回繰り返されるグループを見つけたいと思います。たとえば、スペースで区切られた文字と数字の組み合わせを5回繰り返します。単純な繰り返し構文を使用できます(?:\w\d ){5}。
次に、この5x文字の数字のスペースを別のものに置き換えたいと思います。このために、私はその周りに括弧を置くことによって、(スペースなしで)文字と数字のコンボのそれぞれを逆参照しようとします:(?:(\w\d) ){5}。残念ながら、5つすべてがに格納されています。$1つまり、$1一致するたびに上書きされます。
それで、この上書きを回避する方法はありますか?または、部分文字列のみで何かを置き換える方法はありますか?
編集:
入力文字列の例:A1 A3 A4 B6 ::: A1 A3 A4 C5 B6
必要な出力文字列:A1 A3 A4 B6 ::: A1-A3-A4-C5-B6
つまり、スペースが5つある場合にのみ、スペースを交換してください。Perlで実装されています。
java - 正規表現; 文字セットで一致しなかった文字を逆参照する
'のいずれかに一致"し、次に他の文字に一致する正規表現を作成します。最初に遭遇した内容に応じて、 a'またはそれぞれが一致したときに終了します。"したがって、この問題は、最後に後方参照を使用することで解決できるほど単純に見えます。以下にいくつかの正規表現コードを示します(Javaであるため、\beforeなどの余分なエスケープ文字に注意して"ください)。
このコードは、次のようなものを正常に処理します。
次のような文字列があると問題が発生します。
上記の正規表現を使用すると、最初の部分で遭遇すると失敗し、'続行して正常に一致し'may be taken'ます...しかし、これは明らかに不十分です。文字列全体を一致させる必要があります。
私が考えているのは、最初のグループで一致しなかった引用符のタイプを、3番目のグループの文字セットに文字として含めることによって無視する方法が必要だということです。しかし、私はこれを行う方法を知りません。ある種の卑劣なNOT後方参照関数か何かがありますか?一致しなかった最初のグループのキャラクターを参照するために使用できるものはありますか?それとも、私の苦境に対するある種の解決策ですか?
regex - Perlのunpack( "A4 / A *")の長さ+バイトの構文(正規表現形式)
perlpacktutで詳しく説明されているように、X / Y *の解凍文字列を使用して、最初にバイトストリームの長さを取得し、次にその数のバイトを正確に読み取ることができます。ただし、たとえば、単純なASCII数値と文字列を使用した正規表現内で、そのようなものを見つけるのに苦労しています。たとえば、ベンコード文字列は次の形式です。
私はかつてこれをやってのけることができたのを覚えていますが、?? {}を使用するだけで、今はコードが手元にありません。これは、新しい5.10キャプチャ/後方参照の1つを使用して、?? {}(これは非常に実験的です)なしで実行できますか?
明白な表現は機能しません:
regex - 正規表現の後方参照が機能しないのはなぜですか?
一部の html コードに一致する正規表現を作成しましたが、うまく動作しません。「wp-caption」以降の部分に問題があります。
一致させたいコード:
最初の 3 つの結果は一致しますが、4 番目の結果は一致しません。\1 が機能しているとは思えません。何かご意見は?
テスト目的でhttp://regexpal.com/を使用しています。
regex - VBA Regex .Replaceメソッドで許可されるパラメーターの数はいくつですか?
!VBA正規表現のreplaceメソッドを使用していますが、いくつのパラメーターを使用できるのでしょうか。さまざまなオプションを提供するmsdnページを見てきましたが、どちらを使用すればよいかわかりません。そのページへのリンクは次のとおりです。MSDNページ:Regex.Replaceメソッド
可能であれば、「replacewith」パラメータで後方参照やその他のVBA正規表現を使用できるようにしたいと思います。
私は現在これしかできません、例えば(文字通りのテキスト置換)
私はこれをしたいと思います、例えば:
また
VBA正規表現でこれを行うにはどうすればよいですか?
助けてくれてありがとう!
regex - 正規表現の一致する変数をクリアするための最良の方法は何ですか?
すべての正規表現一致変数をクリア/リセットするための最良の方法は何ですか?
/li>$1正規表現操作間でリセットされず、最新の一致を使用する方法の例:ループを操作するときにこれがどのように問題になる可能性があるかの例:
/li>
更新:これを行う必要があるとは思いませんでしたが、例2は単なる例です。この質問は、一致する変数のリセットに関するものであり、それらを実装するための最良の方法ではありません。
とにかく、もともと私のコーディングスタイルは、明示的でif-blocksを使用することでよりインラインでした。これ(例2)に戻った後、コードの多くの行を読む方がはるかに簡潔であるため、この構文を理解するのが速くなります。
regex - 文字列の一部を ack (または同等のもの) で返すにはどうすればよいですか?
ファイルに次のような行があります。
その文字列から戻るには、ack や grep などを使用したいと考えてbarいます。これまでのところ、私は持っています:
しかし、行全体ではなく、最初の後方参照だけを吐き出す方法がわかりません。