拆分字符串并仍然保留分隔符

Split string and still keep the delimiter

我有一串这样的代码:

replace [IntType]
import TYPE [libc_to_basic_type_entry*]

现在我想使用 Python 正则表达式将它们拆分成数组,如下所示:

["replace", "[", "IntType", "]"]
["import", "TYPE", "[", "libc_to_basic_type_entry, "*", "]"]

最好的方法是什么?谢谢


起初,我尝试做简单的 string.split("[") 并继续将字符串循环到 split 和其他字符。但是我发现这种方式并不有效,所以我想通过正则表达式寻求帮助。

您可以使用这个正则表达式:

\s*(\w+|[^\w\s])\s*

正则表达式详细信息:

  • \s*:匹配0个或多个空格
  • (: 开始捕获组
    • \w+:匹配1+个单词字符
    • |: 或
    • [^\w\s]: 匹配不是单词或空白字符的字符
  • ): 结束捕获组
  • \s*:匹配0个或多个空格

代码:

s = 'import TYPE [libc_to_basic_type_entry*]'
print (re.findall(r'\s*(\w+|[^\w\s])\s*', s))

输出:

['import', 'TYPE', '[', 'libc_to_basic_type_entry', '*', ']']