gpt4 book ai didi

Python 使用多个字符拆分字符串,同时仍保留该字符

转载 作者:行者123 更新时间:2023-12-05 08:51:09 24 4
gpt4 key购买 nike

我见过许多使用 re.split 的解决方案,但它并没有解决我的问题。我希望能够拆分我的字符串并将某些字符保留在列表中......很难解释,但这里有一个例子:

正文:

'print("hello world");'

我想要的结果:

["print", "(", "\"", "hello", "world", "\"", ")", ";"]

像 re.split 这样的东西会给我:

["print", "hello", "world"]

我怎样才能得到想要的结果?

最佳答案

你可以试试这个。

import re
text='print("hello world");'
parsed=re.findall(r'(\w+|[^a-zA-Z\s])',text)
print(parsed)
#['print', '(', '"', 'hello', 'world', '"', ')', ';']

\w+ - 捕获每个单词。

[^a-zA-Z\s] - 捕获不在 [a-zA-Z] 中且不是空格的所有内容。

编辑:当您想捕获数字和 float 时,使用此 re 表达式 \d+\.\d+|\d+|\w+|[^a -zA-Z\s]

\d+ - 捕获数字\d+\.\d+ - 捕获 float 。

a='print("hello world",[1,2,3,4,3.15]);'
print(re.findall('\d+\.\d+|\d+|\w+|[^a-zA-Z\s]',a)
#['print', '(', '"', 'hello', 'world', '"', ',', '[', '1', ',', '2', ',', '3', ',', '4', ',', '3.15', ']', ')', ';']

关于Python 使用多个字符拆分字符串,同时仍保留该字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60370458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com