python - 正则表达式-匹配之间捕获文本

标签 python regex

在下面的文本中,我尝试匹配一个数字,后跟“)”,然后匹配一个数字和一个句点。我正在尝试检索比赛之间的文本。
例:


  “ 1)有一个dsfsdfsd,2)还有一个,而3)还有另一个
  案件”


所以我尝试输出:[“有一个dsfsdfsd和”,“有另一个dsfsdfsd”,还有另一个情况”]

我用过这个正则表达式:(?:\ d)| \ d。
在末尾添加。*会匹配整个字符串,我只希望它与之间的单词匹配

也在此字符串中:


  “我们会给4.,还有其他选择,而6.99美元是
  位数”


我只想匹配4.而不是6.99

任何指针将不胜感激。谢谢。 [R

最佳答案

从您的任务来看,匹配定界符并使用re.split可能会更容易(注释中的bobblebubble也指出了这一点)。

我只建议

\d+[.)]\B\s*


it in action (demo)

它匹配1个或多个数字,然后匹配.),然后确保其后没有单词字母(数字,字母或下划线),然后匹配零个或多个空格。

Python demo

import re
rx = r'\d+[.)]\B\s*'
test_str = "1) there is a dsfsdfsd and 2) there is another one and 3) yet another case\n\"we will give 4. there needs to be another option and 6.99 USD is a bit amount"
print([x for x in re.split(rx,test_str) if x])

关于python - 正则表达式-匹配之间捕获文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34842089/

相关文章:

python - (Errno::EACCES) pygments.rb 权限被拒绝

python - 如何让自定义字体在 Google Colab 上工作,以便我可以使用它来运行 manim(3b1b 的动画软件)

python - 计算numpy数组中的相邻单元格

python - Django celery 连接错误 : Too many heartbeats missed

javascript - 选择第 n 个和第 n+N 个标记之间的内容

Python 3.4.0 -- 'ascii' 编解码器无法对位置 11-15 中的字符进行编码 : ordinal not in range(128) -- Unix 14. 04

ruby - 如何确定 ruby​​ 是否可以在不过度使用正则表达式的情况下进行 fork ?

python - 正则表达式忽略数字后跟单词/非数字字符

python - 如何使用 Python 找到出现正则表达式的行

regex - 使用数组时的 Perl 模式匹配