あなたは、単一引用符をエスケープして、現在の正規表現パターンを(!Wiktor第さんのコメントに従って修正)を使用することができます
regexp_substr(<your string>, q'[Permission:\s?'([a-zA-Z]+)'\s?Teacher name]')
をあなたが去ることができますどの個々の引用符は元のとおりで、実際のコンテンツには表示されない区切り文字を使用して区切られた一重引用符の集合にすべてを入れる - ここでは角括弧を使用しているので、q'[ ... ]'
。内部にあるものは、...
の部分にエスケープされていないシングルクォーテーションが含まれます。
デモ:
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
か:
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
ちょうどあなたが戻って参照してregexp_replace()
を使用することができます単語 'プレビュー' を取得するには:
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
または
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
[あなたの質問をフォーマットしてください](https://stackoverflow.com/help/formatting)。 –
FYI:['[a-zA-z]'は単なる文字以外のものにマッチすることに注意してください(https://stackoverflow.com/a/29771926/3832970)。 –