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