在pythonregex脚本中删除可选空格

2024-10-02 10:18:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我的正则表达式脚本有点问题,希望有人能帮我。在

基本上,我有一个正则表达式脚本关于芬德尔()在python脚本中使用。我的目标是搜索不同长度的字符串,寻找圣经经文的参考(例如约翰福音3:16,罗马书6,等等)。我的regex脚本基本上是有效的,但有时它会在圣经书名之前添加额外的空白。脚本如下:

versesToFind = re.findall(r'\d?\s?\w+\s\d+:?\d*', str)

为了更好地解释这个问题,下面是我在这个文本字符串上运行脚本时的结果:

^{pr2}$

结果(来自www.pythonregex.com网站)公司名称:

[u' John 3:16', u' John 2', u'1 Kings 4', u' Romans 4']

正如你所看到的,john2和romans4在开头有一个多余的空格,我想去掉它。希望我的解释有道理。提前谢谢!在


Tags: 字符串文本re脚本目标圣经john空白
3条回答

使用列表理解,您可以在一行中完成:

versesToFind = [x.strip() for x in re.findall(r'\d?\s?\w+\s\d+:?\d*', str)]

不必重写正则表达式,您可以始终使用strip()空格:

>>> L = [u' John 3:16', u' John 2', u'1 Kings 4', u' Romans 4']
>>> print map(unicode.strip, L)
[u'John 3:16', u'John 2', u'1 Kings 4', u'Romans 4']

^{}这里与:

^{pr2}$

您可以使用parens(?:将数字和空格作为一个单独的单元进行分组,以指定它是非捕获的)

'(?:\d\s)?\w+\s\d+:?\d*'
 ^^^    ^

产生了

^{pr2}$

相关问题 更多 >

    热门问题