2016-03-24 3 views
0
SELECT regexp_replace('FRAME WINDOW MASTER. 160.055-44.9 ADULT Z68.41', '[^A-Z0-9%+/.+ '']', ' ') 
FROM DUAL; 

私が得る結果は正規表現は、期間と一致しないようにするために(。)、テキスト(のみアルファ)からではなく、英数字のテキストから

FRAME WINDOW MASTER. 160.055 44.9 ADULT 

ですが、私は結果になりたい

FRAME WINDOW MASTER 160.055 44.9 ADULT (期間のないマスター)

+2

と、ここでのルールは何ですか? –

+0

マスター。またはTEX.T(単語に数字がない場合)はスペースで置き換えてください。ただし、160.055-44.9またはZ68.41は使用しないでください。 – user2284342

+0

スペースか何もありませんか? –

答えて

0

これはトリックですか?

"[^A-Z0-9%+/.+ '']|\.\s" 

私はあなたが望むものを正確にはわかりませんが、あなたが望む出力を与えます。

編集これは修正です:

[^A-Z0-9%+/.+ '']|\.(\s|$) 
+0

ありがとう、マスターからテンポラから期間を削除します SELECT regexp_replace( 'FRAME DD.XX WINDOW MASTER。160.055- 44.9 ADULT Z68.41 TEMPORA。 '、' [^ A-Z0-9%+ /。+ ''] \\ \ s '、' ')FROM DUAL; – user2284342

+0

テキストを含むが英数字からはピリオドを削除する必要があります。 – user2284342

+0

スペースにスペースがない場合は、最後の単語に問題があります。 – user2284342

0

あなたは文字の後に.のために一致し、このようなグループを置き換えることができます。

正規表現:(\D)\.とあなたが. 2間の文字に一致し、このようなグループを置き換えることができます\1[space]

Regex101 Demo


と交換してください。

正規表現:(\D)\.(\D)\1[space]\2ます。また、このようなlook aroundアサーションを使用することができ

Regex101 Demo


と交換してください。 オラクル社のサポートについては懐疑的です。

正規表現:(?<=\D)\.(?=\D)と置き換える[space]

Regex101 Demo

関連する問題