問題タブ [regexp-replace]

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 に答える
111 参照

regex - SQL の正規表現

@ 文字で始まる単語を除いて、ORACLE の動的クエリのすべての単語を NULL に置き換える必要がある正規表現を作成する必要があります。例えば:

SQL:

REGEXP_REPLACE の使用

次の結果が得られるはずです。

そして、いろいろな方法でいくつか試してみましたが、まだできません。

彼らはあなたがこれを行うことができるかどうか知っています?? そして、正規表現がいかに深刻か。

PL/SQLを扱っています

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

sql - OracleでREGEXP_REPLACEを使用したCSV値の区別

以下のようなデータを含むテーブルがあります

そして、以下のような出力が必要です

出力

以下のクエリを試しました。しかし、出力は異なります。

しかし、出力は

パターンの検索に regexp_replace のみを使用したい。私を助けてください。

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

oracle - Oracleでregexp_replaceによってカンマ区切りのリストから重複を削除するには?

私は持っている

私が欲しい

私は試した

そして、私は出力を取得します

しかし、私は出力が

助けてください。

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

postgresql - PostgreSQL : 特殊文字から始まる varchar フィールドから削除する方法は?(regexp_replace)

VARCHARフィールドで文字「M」が最初に出現した後のすべてを削除したい(包括的)。

それでSELECT regexp_replace('The world Mine is mine')

生成する必要があります:'The world '

これは

SELECT left('The world Mine is mine',INSTR('The world Mine is mine','M',1,1)-1)

leftしかし、となしでそれを達成する方法はinstr? 回答をいただければ幸いです。

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

javascript - 正規表現と変数

1つだけ質問があります(毎日のように)

しかし、それは機能しません。正規表現で変数を使用する方法がわかりません。ありがとう、私の英語でごめんなさい

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

regex - regexp_replace を使用して、一致する文字列全体ではなくキャプチャ グループのみを置換する方法

データベースには、「150 W 96 Th St」および「4514 282 Nd St」に類似した値を含む列があります。お気付きかもしれませんが、通りの数字と接尾辞の間には '96 TH' のようにスペースがあります。

そのスペースを削除する postgresql クエリを作成しようとしています。以下を使用します。

私は得る:

キャプチャ グループのみが返されることを示します。

ただし、実行すると

私は得る

一致する文字列全体が置き換えられます。

私も試してみました

最初のキャプチャ グループを置き換えるだけだと思いました。

他に何を試す必要がありますか?

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

sql - Oracle db: 文字列の特定の位置にスペースを追加する方法

文字列 (varchar2) があり、a が 2 つ連続する場所にスペースを追加したいとします。たとえば、次のようになります 'graanh' -> 'gra anh'

replaceわかりました。これは、またはを使用して行うのは簡単ですregexp_replaceしかし、どちらも a が3つ以上連続するとチョークします。例えば:

これは、一致パターンの「次の」出現の検索が「前の」パターンの終了後に開始されるためです。実際、regexp_count('aaaaa', 'aa')4 ではなく 2 を返します。

望ましい結果は'aaaaa' -> 'a a a a a'です。

問題は、実際には、パターンを置き換えたくないということです'aa'。私が置き換えたいのは、空の文字列の両側にある空の文字列 BETWEEN a です。したがって、説明は次のようになります。両側に a がある空の文字列をすべて検索し、その空の文字列をスペースに置き換えます。

これは文字列または正規表現関数で実行できますか? 再帰クエリや (恐ろしい!) PL/SQL プロシージャを使用したソリューションを提供しないでください。それらが実行できることは知っていますが、「自然な」解決策、つまりこの質問のために正確に存在するツールが存在するかどうかに興味があります。

最悪の場合、replace(replace('aaaaa', 'aa', 'a a'), 'aa', 'a a')トリックを行います。これも最良のケースですか?

これが奇妙な要件だと思わないでください: コンマ区切りの文字列を分割するさまざまな方法を試しています。一部のメソッドには、そのような文字列内の NULL トークンを無視するという非常に厄介な習慣があります (つまり、2 つの連続するコンマからは、当然のように NULL を取得できません)。したがって、これらのメソッドを使用する前に、入力文字列を解析して、連続するコンマの間にスペースまたは文字列 'NULL' などを追加する必要があります。もちろん、すべてのコンマの後 (および文字列の先頭) にスペースを追加し、トークンに分割した後、各トークンの先頭からスペースを削除することをお勧めします。しかし、これは私が上で尋ねた質問を提起し、それ自体にメリットがあると思います.

ありがとうございました!

編集(2020 年 4 月 13 日) この質問を最初に投稿して以来、正規表現について多くのことを学びました。これで専門用語がわかりました。(私が行った説明は正しいことがわかりました。専門用語を使用していなかっただけです。)ここで必要なのは、1回のパスで必要な場所にスペースを追加できるようにするために、ルックアラウンドとOracleの正規表現です。それらをサポートしないでください。編集終了

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

oracle11g - Oracle SQLで文字列の先頭にのみ発生を置き換える方法は?

ソース列があり、05、5 971971、および 97105 で始まる文字列値を検索して、9715 に置き換えたいと考えています。出力テーブルに示すように。

SOURCE OUTPUT 0514377920 971514377920 544233920 971544233920 971971511233920 971511233920 9710511233920 971511233920

最初のケースで機能する以下を試しました。

しかし、2番目のケースでは、以下は機能しません:

正規表現に何か問題があります。私が得ているように: ORA-12727: 正規表現の後方参照が無効です。