0

列に文字列形式がMID: 124281-2 - SID: 31701あります。

そこから抽出する必要が124281-2あり31701ます。

試しました

SELECT REGEXP_SUBSTR('MID: 124281-2 - SID: 31701', ':[^,]+-') FROM DUAL;

しかし、結果は: 124281-2 -

:とを削除するにはどうすればよい-ですか?

前もって感謝します

4

2 に答える 2

0

問題に直面したときに、「分かった、正規表現を使用する」と考える人もいます。現在、彼らには 2 つの問題があります。-- ジェイミー・ザウィンスキー

決して正規表現を使用しないと言っているわけではありませんが、このような場合にはもっと簡単なオプションがあるかもしれません。より単純なアプローチを試してみてください。たとえば、SUBSTR 文字 6 から 13 (124281-2) と文字 22 から 26 (31701) を使用してみてください。これは、固定された部分文字列の長さを前提としていますが、これは持っていない可能性がありますが、一見の価値があります。

または、正規表現を使用する必要がある場合は、グループを使用して、必要な 2 つの値をトラップする必要があります。より具体的にしてみてください - のようなもの[A-Z]+: ([0-9\-]+) \- [A-Z]+: ([0-9]+)

于 2013-09-05T06:01:01.453 に答える