Regex, чтобы заменить все между косой чертой и пробелом - PullRequest
1 голос
/ 02 октября 2019

Я хотел бы иметь возможность захватить что-нибудь между открывающим \ и конечным пробелом и удалить его из строки.

У меня есть пример текста

\viewkind4\uc1d\cf1\lang1033\f0\fs20 This is a test to see if I can pull in documents fr other things.

То, что я 'Я хотел бы закончить как

This is a test to see if I can pull in documents fr other things.

Я новичок в регулярных выражениях, и я пытаюсь сделать это в запросе Oracle, поэтому я попытался ^\\\s$, думая, что я могу получить его, чтобы найти начальныйкосая черта и пробел между fs20 и This is a test....

Есть идеи о том, что я могу попробовать?

Ответы [ 2 ]

2 голосов
/ 02 октября 2019

Рассмотрим:

REGEXP_REPLACE(mycolumn, '\\\S+\s', '')

Объяснение регулярного выражения:

\\      a backslash
\S+     as many characters as possible others than a space
\s      a space

Демонстрация на DB Fiddle :

WITH mytable AS (
    SELECT '\viewkind4\uc1d\cf1\lang1033\f0\fs20 This is a test to see if I can pull in documents fr other things.' mycolumn FROM dual
)
SELECT REGEXP_REPLACE(mycolumn, '\\\S+\s', '') new_column FROM mytable
| NEW_COLUMN                                                        |
| :---------------------------------------------------------------- |
| This is a test to see if I can pull in documents fr other things. |
0 голосов
/ 03 октября 2019

Так как вы указали открытие \, вы указали мне, что вы ищете свой первый пробел, а затем захватите все после этого. Это работает не только на \, но и на любом непробельном символе.

Найдите первое место и затем захватите все, что за ним.

WITH mytable AS (
    SELECT '\viewkind4\uc1d\cf1\lang1033\f0\fs20 This is a test to see if I can pull in documents fr other things.' mycolumn FROM dual
)
SELECT    regexp_instr(mycolumn,' ',1) as first_space,  --Now use substr to get everything beyond it.
         substr(mycolumn,regexp_instr(mycolumn,' ',1) +1) as all_past_first_sp
FROM mytable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...