Python中文
首页
教程
问答
标签
搜索
登录
注册
Python正则表达式,不包括多个换行符
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>所以我在分析文本时遇到了一个问题。我试图解析音乐文件,它们是半格式化的。例如,我试图把合唱团排除在歌词之外。大多数情况下,格式如下所示:</p> <pre> [Chorus: x2] Some Lyrics Some More Lyrics [Verse] Lyrics Lyrics </pre> <p>在这种情况下,这两个函数可以正确解析:</p> <pre><code>subChorus = re.sub(r'\[Chorus.*?\].*?\[', '[', lyrics, flags = re.DOTALL); subChorus2 = re.sub(r'\[Chorus.*?\].*?(\n{2,})', '', lyrics, flags = re.DOTALL); </code></pre> <p>然而,有时合唱团是文件的最后一部分:</p> <pre> Lyrics [Chorus] Some Lyrics Other Lyrics </pre> <p>在这种情况下,我想不出正确的表达方式来消除合唱。如果我这么做的话</p> <pre><code>subChorusEnd = re.sub(r'\[Chorus.*?\].*?$', '', lyrics, flags = re.DOTALL); </code></pre> <p>它将工作,但是,对于其他文件中的最后合唱部分不在最后,它将删除需要保留的诗句。所有合唱团块与诗句后,至少有两个新行分开。所以我想出了一个解决办法:</p> <pre><code>subChorusEnd = re.sub(r'\[Chorus.*?\][^(\n{2,})]*?$', '', subChorus4, flags = re.DOTALL); </code></pre> <p>但它不起作用。有人能给我解释一下正确的正则表达式来让上面的语句工作吗?或者一个更好的方法,只删除一段文本末尾的chorus块,这也会保留最后一个chorus不在末尾的文件。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<pre><code>\[Chorus:[^\]]+\][\s\S]*?(?=\n{2}|$) </code></pre> <p>试试这冷杉所有的种类合唱。替换通过<code>empty string</code>。参见演示。你知道吗</p> <p><a href="https://regex101.com/r/vN3sH3/77" rel="nofollow">https://regex101.com/r/vN3sH3/77</a></p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
拆分()错误:列表索引超出范围
1 回答
拆分(分解)数据帧字符串条目以分隔行
6 回答
拆分(分解)数据帧字符串条目以分隔行。多列
4 回答
拆分/提取系列索引中的字符串并作为DataFram展开
4 回答
拆分/标识字符串末尾的数字,该数字没有固定的字符数
6 回答
拆分2列CSV并保存到不同的文件
1 回答
拆分aconftest.py分成几个较小的conftestlike部分
7 回答
拆分apyspark.sql基于一列将数据帧放入多个表中
6 回答
拆分ascii/unicode字符串
3 回答
拆分a稀疏稀疏矩阵进入列车和tes
6 回答
拆分B的可能性
2 回答
拆分char上的查询字符串以获取不同的参数;Python:
8 回答
拆分csv fi中显示的图表
9 回答
拆分csv fi的列
2 回答
拆分CSV-fi需要Regex帮助
9 回答
拆分csv(和多选字段)以获取要导出到xlsx工作表的字段计数,我会不断获取“[blank]值和nan
4 回答
拆分CSV文件时出现标题问题[Python 3]
9 回答
拆分Cython代码后无法转换为Python对象
5 回答
拆分Dataframe,让线程处理每个部分,然后合并Datafram
2 回答
拆分dataframe列并删除额外变量
5 回答