Sie können Ihre aktuellen RegexMuster (korrigiert gemäß Wiktor Kommentar!) Verwenden, indem Sie die einfachen Anführungszeichen zu entkommen:
regexp_substr(<your string>, 'Permission:\s?''([a-zA-Z]+)''\s?Teacher name')
oder mehr sauber von the alternative quoting mechanism mit:
regexp_substr(<your string>, q'[Permission:\s?'([a-zA-Z]+)'\s?Teacher name]')
mit dem Sie verlassen die einzelnen Anführungszeichen wie sie ursprünglich waren, und setzen das Ganze in eine Reihe von abgegrenzten einfachen Anführungszeichen, mit einem Trennzeichen, das nicht in Ihrem eigentlichen Inhalt erscheint - ich habe hier eckige Klammern verwendet, so q'[ ... ]'
. Das lässt, was auch immer innen ist, der ...
Teil, unescaped einfache Anführungszeichen einschließen.
Demos:
with t (str) as (
select q'[Time: '333333333333333333316:06:55 -232323' Permission: 'Preview' Teacher name: '4444444444444ffffffffffff' Student: 'cccccccccccssssssssss' Exam score: 'eeeeeeeeeeeA']' from dual
)
select regexp_substr(str, 'Permission:\s?''([a-zA-Z]+)''\s?Teacher name')
from t;
REGEXP_SUBSTR(STR,'PERMISSION:\S?'
----------------------------------
Permission: 'Preview' Teacher name
oder:
with t (str) as (
select q'[Time: '333333333333333333316:06:55 -232323' Permission: 'Preview' Teacher name: '4444444444444ffffffffffff' Student: 'cccccccccccssssssssss' Exam score: 'eeeeeeeeeeeA']' from dual
)
select regexp_substr(str, q'[Permission:\s?'([a-zA-Z]+)'\s?Teacher name]')
from t;
REGEXP_SUBSTR(STR,Q'[PERMISSION:\S
----------------------------------
Permission: 'Preview' Teacher name
Um nur das Wort 'Vorschau' Sie regexp_replace()
mit einem Back-Referenz verwenden können:
with t (str) as (
select q'[Time: '333333333333333333316:06:55 -232323' Permission: 'Preview' Teacher name: '4444444444444ffffffffffff' Student: 'cccccccccccssssssssss' Exam score: 'eeeeeeeeeeeA']' from dual
)
select regexp_replace(str,
'(.*Permission:\s?'')([a-zA-Z]+)(''\s?Teacher name.*)', '\2', 1, 1)
from t;
REGEXP_
-------
Preview
oder
with t (str) as (
select q'[Time: '333333333333333333316:06:55 -232323' Permission: 'Preview' Teacher name: '4444444444444ffffffffffff' Student: 'cccccccccccssssssssss' Exam score: 'eeeeeeeeeeeA']' from dual
)
select regexp_replace(str,
q'[(.*Permission:\s?')([a-zA-Z]+)('\s?Teacher name.*)]', '\2', 1, 1)
from t;
REGEXP_
-------
Preview
Bitte [formatieren Sie Ihre Frage] (https://stackoverflow.com/help/formatting). –
FYI: Beachten Sie, dass ['[a-zA-z]' mehr als nur Buchstaben entspricht] (https://stackoverflow.com/a/29771926/3832970). –