問題タブ [regex-group]

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 投票する
33 に答える
237518 参照

regex - 英国の郵便番号に一致する正規表現

入力文字列内でのみ完全な複雑な英国の郵便番号を検証する正規表現を求めています。一般的でない郵便番号フォームはすべて、通常のものと同様にカバーする必要があります。例えば:

マッチ

  • CW3 9SS
  • SE5 0EG
  • SE50EG
  • se5 0eg
  • WC2H 7LT

歯が立たない

  • aWC2H 7LT
  • WC2H 7LTa
  • WC2H

この問題を解決するにはどうすればよいですか?

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

c# - SQL クエリの正規表現は空の MatchCollection を返します

私はそれを短く簡潔に保つようにしています。SQL 形式でクエリを受け取り、XML を検索するプログラムを作成する必要があります。現在、文字列を論理的な断片に分解して、それらを操作できるようにしようとしています。入力として文字列があり、MatchCollection を出力として取得したいと考えています。

以下のテスト文字列は、単純にするためにユーザーに課す特別な形式であることに注意してください。1 行に 1 つのステートメントのみが許可され、ネストされたクエリは除外されます。

string testString = "りんごを選択 \n dblp から \r 食べた場所 \n すべてをグループ化 \r HAVING NO SHAME \n";

次のパターンで正規表現を使用します。

私の知る限り、これにより、テスト文字列を持つすべてのグループに一致するはずです。各行の先頭にある「select」とそれに続く改行以外の文字が完全に一致するものを探します。

次に、コレクションを作成します。

それが機能することを確認するために、 foreach を使用し、次のように一致を出力しました。

問題は、コレクションが常に空であることです。正規表現のどこかに欠陥があるに違いありませんが、経験が浅すぎて見つけることができません。助けていただけませんか?どうもありがとうございました!


の代わりに .* を使用してみました。そう言われるまで。複数の文字を計算することさえできます。これが問題になる可能性があることは間違いありませんが、交換しても結果が得られません。

正規表現が改行を見つけるまで、定義された単語で始まり、それに追加された文字を含む行を照合するのが非常に難しい理由がわかりません。これは比較的簡単な作業だと思います。

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

python - re.sub (または regexobject.sub) を使用してサブグループ内のテキストを置き換えることはできますか?

次のような構成ファイルを解析する必要があります (簡略化):

私の目標は、特定のリンクに固有のパラメーターを変更できるようにすることですが、置換を正しく機能させるのに問題があります。値がキャプチャ グループ 1 に含まれている特定のリンクのパラメーター値を分離できる正規表現があります。

したがって、

ipsec を出力します

regex howto allの例は、キャプチャ グループを置換で使用することを想定しているように見えますが、必要なのはキャプチャ グループ自体を置換することです (たとえば、Link1 モードを ipsec から udp に変更します)。

0 投票する
6 に答える
143018 参照

java - Java正規表現のグループを置き換えることはできますか?

私はこのコードを持っていますが、Java正規表現でグループのみ(すべてのパターンではない)を置き換えることができるかどうかを知りたいです。コード:

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

java - 線形検索を使用せずに Java 正規表現で一致するグループを見つけますか?

このように、プログラムで組み立てられた巨大な正規表現がいくつかあります

各サブパターンは、そのキャプチャ グループにあります。group(i)一致した場合、各グループが null 以外の文字列を返すことを直線的にテストせずに、どのグループが一致するかをどのように判断するのですか?

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

php - 名前付き(サブ)グループを介してxmlのようなタグから値を抽出/置換する正規表現

PHP で単純なテキスト トランスレータを作成しようとしています。

次のように一致する必要があります。

言語はオプションにすることができます

コードは次のとおりです。

「属性」を抽出しますが、最後の属性のみをフェッチします。私が最初に考えたのは、PHP がすべての一致で (名前付きの) 配列要素を上書きするとき、それはグループの名前付けに関係しているということでした。ただし、グループの名前を省略すると、最後の一致のみが返されます。

例としてコールバックに返される配列を次に示します

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

java - 正規表現(グループを含む)で文字列パラメーターのリストを使用して、新しい文字列を作成する方法はありますか?

たとえば、次のような正規表現があるとします。

この正規表現には3つのグループ化されたコンポーネントがあります。特定の文字列と一致する場合、正規表現APIを使用すると、各グループ内の値を簡単に抽出できます。

ここで、3つの文字列があるとします。

グループ内にない正規表現内のすべての文字が単なるリテラルテキスト文字であると仮定すると、これらの3つの文字列のそれぞれを、元の正規表現の対応するグループに挿入して、次のような出力文字列を作成する方法があります。正規表現のグループ化されていない部分を組み合わせますか?この場合、「速い赤狐は怠惰な猫を飛び越えます」という結果になります。できれば、正規表現にすでに一致している文字列を用意する必要はありません。

私はJavaでこれを実行しようとしています-java.util.regexはこれをサポートしていないと確信していますが、これを実行できるサードパーティのlibが存在する可能性があると思いました。誰かが私にいくつかのポインタを与えることができますか?

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

c# - Group.Value が常に最後に一致したグループ文字列になるのはなぜですか?

最近、1 つの C# Regex API が非常に煩わしいことに気付きました。

私は正規表現を持っています(([0-9]+)|([a-z]+))+。一致したすべての文字列を検索したい。コードは以下のようなものです。

出力は次のとおりです。

すべての group.Value が最後に一致した文字列 (「def」と「456」) のようです。group.Value の代わりに group.Captures を使用する必要があることを理解するために、しばらく時間を費やしました。

これは出力されます:

さて、なぜ API 設計がこのようになっているのか疑問に思います。Group.Value が最後に一致した文字列のみを返すのはなぜですか? このデザインはよく見えません。

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

c# - 正規表現のヘルプ:私の正規表現パターンは無効な文字列と一致します

検証したいテキスト文字列は、私が「セグメント」と呼んでいるもので構成されています。単一のセグメントは次のようになります。

これまでのところ、この正規表現パターンを構築することができました

動作しますが、テキスト文字列全体に無効なテキストが含まれていても、一致が返されます。^パターンのどこかで使用する必要があると思います$が、方法がわかりません!?

私のパターンで次の結果が得られるようにしたいと思います。

  • [A-Z,S,3][A-Za-z0-9åäöÅÄÖ,D,4] OK(2つのセグメント)
  • [A-Z,S,3]aaaa[A-Za-z0-9åäöÅÄÖ,D,4] 歯が立たない
  • crap[A-Z,S,3][A-Za-z0-9åäöÅÄÖ,D,4] 歯が立たない
  • [A-Z,S,3][] 歯が立たない
  • [A-Z,S,3][klm,D,4][0-9,S,1] OK(3つのセグメント)
0 投票する
4 に答える
2727 参照

python - Python 正規表現でグループに動的に名前を付ける

Python で正規表現グループの名前を動的に更新する方法はありますか?

たとえば、テキストが次の場合:

何人の人がいるかを事前に知らずに、グループ「person1」、「person2」、「person3」、...、および「personN」にどのように名前を付けますか?