python - 从字符串开头删除连续字符

标签 python regex

最好的办法是去掉有时出现在维基百科引用文献开头的字母?

例如来自

a b c d Star Wars Episode III: Revenge of the Sith (DVD). 20th Century Fox. 2005.

Star Wars Episode III: Revenge of the Sith (DVD). 20th Century Fox. 2005.

我已经编写了一个可行的解决方案,但看起来很笨拙。我的版本使用“^(?:a (?:b (?:c )?)?)?”形式的正则表达式。什么是正确、快速的方法?

a = list('abcdefghijklmnopqrstuvwxyz')
reg = "^%s%s" % ( "".join(["(?:%s " %b for b in a]), ")?"*len(a) )
re.sub(reg, "", "a b c d Wikipedia Reference")

最佳答案

我可能会做这样的事情:

title = re.sub(r'^([a-z]\s)*', '', 'a b c d Wikipedia Reference')

它的作用与你在那里的作用相同。然而,就像 @joran-beasley 指出的那样,对于复杂的情况,您可能需要更聪明的东西。

关于python - 从字符串开头删除连续字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13737237/

相关文章:

python - 努力使用切片语法来连接列表的一部分的列表元素

javascript - 正则表达式匹配可选项目,除非可选项目包含某个字符串?

python - 如何在类属性定义中使用类方法

python - Pandas:借助字典将变量子字符串从 A 列插入 B 列

java - 如何使用Java获取带有模式的子字符串

regex - 将相对 URL 转换为绝对 URL

php - 清理/替换所有日语、中文、韩语、俄语等字符

java - 从性能角度来看,使用拆分或匹配正则表达式从字符串中提取子文本更好?

python - 使用代码存储库时如何引用资源的相对路径

python - 明显的循环问题 : Why am I appending the same thing to my list over and over again?