Regex 如何从字符串中删除一系列十六进制值?

Regex 如何从字符串中删除一系列十六进制值?,regex,oracle,oracle11g,Regex,Oracle,Oracle11g,使用Oracle 11g,我有一个字符串转储到以下十六进制值: v_字符串:=t? 74:3c:42:52:3e:a:3c:42:52:3e:a 我试过了 v_string := REGEXP_REPLACE(v_string,'\x03c\x042\x052\x03e\x0a\x03c\x042\x052\x03e\x0a',''); 但这不起作用。如何从v_string中删除十六进制值字符串,留下v_string=t?既然您似乎在处理一个字符串,并且您似乎想要完全删除该序列,那么

使用Oracle 11g,我有一个字符串转储到以下十六进制值:

v_字符串:=t

74:3c:42:52:3e:a:3c:42:52:3e:a
我试过了

   v_string := REGEXP_REPLACE(v_string,'\x03c\x042\x052\x03e\x0a\x03c\x042\x052\x03e\x0a',''); 

但这不起作用。如何从v_string中删除十六进制值字符串,留下v_string=t?

既然您似乎在处理一个字符串,并且您似乎想要完全删除该序列,那么问题可能在于您认为十六进制字符串是特殊的,而它只是一个字符串?也许这就是你要找的

 v_string := REGEXP_REPLACE(v_string,'74:3c:42:52:3e:a:3c:42:52:3e:a','');

如果这不是一个有用的解决方案,那么完整字符串及其正确替换的示例可能会有所帮助。。。我不确定我是否完全理解了您的问题。

因为您似乎在处理一个字符串,并且您似乎想要完全删除该序列,可能问题在于您认为十六进制字符串是特殊的,而它只是一个字符串?也许这就是你要找的

 v_string := REGEXP_REPLACE(v_string,'74:3c:42:52:3e:a:3c:42:52:3e:a','');

如果这不是一个有用的解决方案,那么完整字符串及其正确替换的示例可能会有所帮助。。。不确定我是否完全理解您的问题。

您是否尝试过使用交替,即
\x03c\x042…
?所以您希望
:。当我得到v_字符串的十六进制转储时,它包含列出的值。我想从v_字符串中删除这一系列值,留下v_字符串的剩余部分。您是否尝试过使用替换,即
\x03c |\x042…
?所以您想保留
:::
?我想我的问题措辞不好。当我得到v_字符串的十六进制转储时,它包含列出的值。我想从v_字符串中删除这一系列值,留下v_字符串的剩余部分。你让我明白了,我感谢你的解释。请注意,42:52:3e:a连续出现两次。我想使用regexp_replace删除该模式的第一个匹配项,只保留该模式的一个实例(42:52:3e:a)。当我在regexp_replace中使用单个模式时,它会删除两个引用。我想保留一个例子。啊,我明白了。根据这一点:,我认为您需要REGEXP_替换(v_字符串,'42:52:3e:a','',0,1);我不熟悉最后两个可用的参数(0,1),我修补并使用(v_字符串,'hex_字符串',1,1)来达成解决方案…你让我明白了,我感谢你的解释。请注意,42:52:3e:a连续出现两次。我想使用regexp_replace删除该模式的第一个匹配项,只保留该模式的一个实例(42:52:3e:a)。当我在regexp_replace中使用单个模式时,它会删除两个引用。我想保留一个例子。啊,我明白了。根据这一点:,我认为您需要REGEXP_替换(v_字符串,'42:52:3e:a','',0,1);我不熟悉最后两个可用的参数(0,1),我修补并使用(v_字符串、'hex_字符串',1,1)来获得解决方案。。。