python中如何从字符串内提取指定的字符

比如字符串F(a(x(b)), a(c)),depth=2时提取出List = [x(b), c]

1、双击打开pycharm开发工具,新建一个python项目,查看对应的文件夹

2、在turtles文件夹上,鼠标右键新建python文件me.py。

3、打开已新建的python文件,定义一个字符串变量s并进行赋值。

4、调用字符串中的方法replace,将do字符串替换成say,并赋值给变量t,打印结果。

5、保存代码并鼠标右键,选择Run me,查看控制台打印结果。

6、返回到代码编辑区,将say修改为空字符,然后保存文件。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-27
# -*- coding: utf-8 -*-
import re

pattern = re.compile(r"F\(a\((.*)\), a\((.*)\)\)")
match = pattern.match("F(a(x(b)), a(c))")

ss = "List = [%s, %s]" % (match.group(1), match.group(2))
print ss
#List = [x(b), c]

如果解决了您的问题请采纳!
如果未解决请继续追问

追问

能否解释一下re.compile 和pattern.match的用法与作用?本人python小白有点看不懂。。。只知道是正则表达式

追答

如果你对re不太理解的话,建议系统的学习一下:

http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

    re.compile(strPattern[, flag]):

这个方法是Pattern类的工厂方法,用于将字符串形式的正则表达式编译为Pattern对象。
第二个参数flag是匹配模式,取值可以使用按位或运算符'|'表示同时生效,比如re.I |
re.M。另外,你也可以在regex字符串中指定模式,比如re.compile('pattern', re.I |
re.M)与re.compile('(?im)pattern')是等价的。 

    2. Match

Match对象是一次匹配的结果,包含了很多关于此次匹配的信息,可以使用Match提供的可读属性或方法来获取这些信息。

本回答被提问者和网友采纳