交个朋友,长个技能🥎🤸🏼‍♂️

小技巧, 新概念3

程序正则表达式

楚人有卖其珠于郑者, 为木兰 [1] 之柜 [2] , 薰以桂椒 [3] , 缀以珠玉, 饰以玫瑰 [4], 辑 [5] 以羽翠。

郑人买其椟 [6] 而还其珠。

此可谓善卖椟矣, 未可谓善鬻 [7] 珠也。 能否生成正则表达式把方括号中的内容和方括号一起去掉。
import re

text = "楚人有卖其珠于郑者,为木兰 [1] 之柜 [2] ,薰以桂椒 [3] ,缀以珠玉,饰以玫瑰 [4],辑 [5] 以羽翠。郑人买其椟 [6] 而还其珠。此可谓善卖椟矣,未可谓善鬻 [7] 珠也。"

cleaned_text = re.sub(r'\[[^]]*\]', '', text)
print(cleaned_text)

运行这段代码后,cleaned_text 将会是:

“楚人有卖其珠于郑者,为木兰之柜,薰以桂椒,缀以珠玉,饰以玫瑰,辑以羽翠。郑人买其椟而还其珠。此可谓善卖椟矣,未可谓善鬻珠也。”

这里正则表达式 \[[^]]*\] 的工作原理是:

  • \[ 和 \] 分别匹配左方括号 [ 和右方括号 ]
  • [^]]* 匹配任何不在右方括号内的字符序列,* 表示前面的字符可以重复任意次数(包括零次)。因此,整个表达式匹配任何在方括号内的一切内容,并将其替换为空字符串,即删除之。

发表评论