我发现很难把字符串的单词改成固定的。下面是字符串的内容
CREATE TABLE "USER1"."TEST_TAB"
( "O_ID" CHAR(15),
"CREATED_DATE" DATE DEFAULT SYSDATE,
"EVENT_ID" NUMBER,
"LOD" BLOB,
"TOPIC" VARCHAR2(765),
"SCHEMA_ID" VARCHAR2(36),
"RECORD_ID" CHAR(15),
CONSTRAINT "R_PKCONDUIT_MESSAGE" PRIMARY KEY ("O_ID", "TOPIC", "EVENT_ID", "CREATED_DATE") ENABLE
) O INDEX COMPRESS 2 PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGING
TABLESPACE "D01"
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
PCTTHRESHOLD 50
LOB ("LOD") STORE AS BASICFILE (
DISABLE STORAGE IN ROW CHUNK 8192 RETENTION
NOCACHE LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))
PARTITION BY HASH ("O_ID")
(PARTITION "CONDUIT_MESSAGE01"
LOB ("LOD") STORE AS BASICFILE "LOD01"(
TABLESPACE "D01" )
TABLESPACE "D01" ,
PARTITION "CONDUIT_MESSAGE02"
LOB ("LOD") STORE AS BASICFILE "LOD02"(
TABLESPACE "D02" )
TABLESPACE "D02" ,
PARTITION "CONDUIT_MESSAGE03"
LOB ("LOD") STORE AS BASICFILE "LOD03"(
TABLESPACE "D03" )
TABLESPACE "D03" ,
PARTITION "CONDUIT_MESSAGE04"
LOB ("LOD") STORE AS BASICFILE "LOD04"(
TABLESPACE "D04" )
TABLESPACE "D04" ,
PARTITION "CONDUIT_MESSAGE05"
LOB ("LOD") STORE AS BASICFILE "LOD05"(
TABLESPACE "D05" )
TABLESPACE "D05" ,
PARTITION "CONDUIT_MESSAGE06"
LOB ("LOD") STORE AS BASICFILE "LOD06"(
TABLESPACE "D06" )
TABLESPACE "D06"
/
正在尝试更改表空间“D01”。。。。表空间“D06”到表空间“COPY\u TBS”的固定名称
string.replace('TABLESPACE \"D[0-9][0-9]+\"','TABLESPACE COPY_TBS')
好像不行。有没有办法改变这个字符串
您应该使用
re.sub
:string.replace
不适用于正则表达式Demo
另外,我将模式更改为将表空间名称匹配为
D[0-9]+
,假设您希望D
后跟任意数量的数字。如果您真的只想限制为两位数,那么使用D[0-9]{2}
与其他答案不同,有一种更简单的方法。将数据分配给变量:
然后使用循环替换:
您可以在此处在线测试: https://repl.it/@blackskull12/DisfiguredMemorableStructs
编辑:
因为它不能处理大于
10
的数字,所以循环可以是这样的(它可以处理小于100的数字):相关问题 更多 >
编程相关推荐