Python中文
首页
教程
问答
标签
搜索
登录
注册
在Python中提取嵌套正则表达式的所有匹配项
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我试图解析满足python正则表达式的项列表</p> <pre><code>r'\A(("[\w\s]+"|\w+)\s+)*\Z' </code></pre> <p>也就是说,它是一个以空格分隔的列表,但引号内允许有空格。我想得到列表中的项目列表(即</p> ^{pr2}$ <p>部分。所以,举个例子</p> <pre><code>>>> parse('foo "bar baz" "bob" ') ['foo', '"bar baz"', '"bob"'] </code></pre> <p>有没有什么好方法可以用pythonre做到这一点呢?在</p> <p>很多事情不太管用。例如</p> <pre><code>>>> re.match(r'\A(("[\w\s]+"|\w+)\s+)*\Z', 'foo "bar baz" "bob" ').group(2) '"bob"' </code></pre> <p>只返回它匹配的最后一个。另一方面</p> <pre><code>>>> re.findall(r'("[\w\s]+"|\w+)', 'foo "bar baz" "bob" ') ['foo', '"bar baz"', '"bob"'] </code></pre> <p>但它也接受格式错误的表达式,比如</p> <pre><code>>>> re.findall(r'("[\w\s]+"|\w+)', 'foo "bar b-&&az" "bob" ') ['foo', 'bar', 'b', 'az', '" "', 'bob'] </code></pre> <p>那么有没有任何方法可以使用原始正则表达式并获得与组2匹配的所有项?有点像</p> <pre><code>>>> re.match_multigroup(r'\A(("[\w\s]+"|\w+)\s+)*\Z', 'foo "bar baz" "bob" ').group(2) ['foo', '"bar baz"', '"bob"'] >>> re.match_multigroup(r'("[\w\s]+"|\w+)', 'foo "bar b-&&az" "bob" ') None </code></pre> <p>编辑:在输出中保留引号是很重要的,因此我不想这样做</p> <pre><code>>>> re.match_multigroup(r'\A(("[\w\s]+"|\w+)\s+)*\Z', 'foo "bar baz" "bob" ').group(2) ['foo', 'bar baz', 'bob'] </code></pre> <p>因为我不知道鲍勃是否被引用了。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>这里有一个解决方案,它可以对不在引号内的任何空白进行拆分:</p> <pre><code>re.split('\s+(?=[^"]*(?:"[^"]*"[^"]*)*$)', target) </code></pre> <p>只有在刚刚匹配的空白前面有偶数个引号时,lookahead才会成功。如果文本中的引号部分可以包含转义引号,则可能需要更复杂的正则表达式,具体取决于转义的方式。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
创建一个python程序,从websi中提取文件
5 回答
创建一个python程序,告诉我名字和出生年份的人的年龄
9 回答
创建一个Python程序,它接受一个简短的描述并从给定的集合返回一个解决方案(使用nlp)
5 回答
创建一个python程序,用户在其中输入一个月,它会告诉您y的下一个月
5 回答
创建一个python程序,要求用户输入一个偶数奇数
10 回答
创建一个Python程序来修改名称以digi结尾的目录的文本文件
5 回答
创建一个python程序来猜测用户的“秘密号码”?
4 回答
创建一个python算法来训练keras模型来预测一个大的整数序列
8 回答
创建一个python类,它被视为一个列表,但是有更多的特性?
4 回答
创建一个Python类,我可以将其序列化为一个嵌套的JSON obj
3 回答
创建一个python类来查找直线的斜率和长度
6 回答
创建一个Python网络爬虫来获取谷歌Play商店应用程序的元数据
8 回答
创建一个Python网页
10 回答
创建一个python脚本,不断从excel文件中读取数据并进行计算
4 回答
创建一个python脚本,使用tcpdump计算到达网站的数据包数量?
3 回答
创建一个Python脚本,可以运行其他SAS程序并更新Excel工作簿。
10 回答
创建一个python脚本,它将读取csv文件,并使用该输入从web抓取数据finviz.com网站然后将数据导出到csv fi中
5 回答
创建一个python脚本,用mysql数据库中的结构和数据文件创建一个sql转储
10 回答
创建一个python脚本,该脚本将对某个键进行文本文件搜索,并将编号复制到新文件中
8 回答
创建一个Python脚本,该脚本连接到特定端口(SMTP)上的一系列IP
7 回答