0

我使用子字符串对其进行了转换,它工作正常,但我必须转换很多,这需要时间。

有人告诉我正则表达式效率更高,速度更快。

关于正则表达式的任何建议?

使用正则表达式将 string1 转换为 string2

string1 = '96457fa012456c41bf9200011da2d8fa'

string2='\96\45\7f\a0\12\45\6c\41\bf\92\00\01\1d\a2\d8\fa'

先感谢您

4

1 回答 1

1

这适用于 Oracle - 用 SQL Server 替换 Oracle 的正则表达式实现应该很简单:

select regexp_replace(
  '96457fa012456c41bf9200011da2d8fa', 
  '(..)', 
  '\\\1') 
from dual

解释:

  • 我们要匹配任何一对字符 => ".."
  • 我们想“存储”我们刚刚匹配的字符,因此将它们包含在一个捕获组中 => "(..)"
  • 在我们的替换字符串中,我们想要获取匹配组的内容 => "\1"
  • 我们想在每个组之前添加一个反斜杠 => "\\\1"
  • dual 只是 Oracle 中的一个虚拟表
于 2013-03-15T15:02:10.600 回答