Skip to main content
 首页 » 编程设计

python之如何根据周围字符打印字符

2025年05月04日14cloudgamer

一个包含数千个字符的字符串,我如何只打印被“-”包围的字符

例如,如果有一个包含这些字符的字符串,

438429834njnbjjj"28.30"98nj76789889jkljlkjllmm82 

如何打印

28.30 

我知道 Regex,但不知道它是否可以像这样使用。抱歉,我是 Python 新手。

请您参考如下方法:

是的,您可以为此使用正则表达式:

import re 
 
my_string = '438429834njnbjjj"28.30"98nj76789889jkljlkjllmm82' 
 
matches = re.findall(r'".*?"', my_string) 

工作原理:

它调用 re.findall 方法,该方法接受一个正则表达式和一个字符串,并返回该表达式的所有匹配项。

表达式本身很简单,解释如下:

"    # matches a quote 
.    # matches any character 
*    # matches previous rule zero or more times 
?    # tells the previous rule to match as little as possible 
"    # matches a quote again 

然后您可能会问“为什么我们需要这里的??”: 没有它,包含多个可能匹配项的字符串将只返回一个匹配项。示例:my_string = 'hi "important"asdf "also important"not important' 将匹配整个字符串中的第一个和最后一个引号,从而匹配所有 "important"asdf"also important ".

在你得到这个匹配列表后,你可以使用列表理解来删除数据周围的引号,如果你愿意,甚至可以将它转换为数字:

# removes first and last character of every match 
unquoted = [string[1:-1] for string in matches] 
 
# removes first and last characters and converts match to number 
numbers = [float(string[1:-1]) for string in matches]