Skip to main content
 首页 » 编程设计

python之替换字符串中的特定单词

2025年05月04日16mate10pro

我发现很难将字符串的单词更改为固定单词。下面是字符串的内容

 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" 
/ 

尝试将 TABLESPACE "D01".... TABLESPACE "D06"更改为 TABLESPACE "COPY_TBS"的固定名称

string.replace('TABLESPACE \"D[0-9][0-9]+\"','TABLESPACE COPY_TBS') 

似乎不起作用。有什么办法可以更改此字符串。

请您参考如下方法:

你应该使用re.sub:

string = re.sub(r"TABLESPACE \"D[0-9]+\"", "TABLESPACE COPY_TBS", string) 

string.replace 不适用于正则表达式。

Demo

此外,我更改了模式以将表空间名称与 D[0-9]+ 匹配,假设您希望 D 后跟任意数量的数字。如果您真的只想限制为两位数字,请使用 D[0-9]{2}。