正则表达式匹配所有字符,直到ti达到一个numb

2024-06-17 17:26:15 发布

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

我最近才碰到regex。老实说,regex有时会吓到我,呵呵,但我正在努力学习。所以,我以前问过一个问题,现在我又来问另一个问题。我有下面的样本数据,我想做的是选择之前的数字一切。你知道吗

pencil apple car 15 Nate
beef sun shirt 56 Gaile
face building air 36 Ron

所以我想要的结果是

pencil apple car
beef sun shirt
face building air

我试过这个:

.+?(?=[\d])

但这只选择了第一行。谢谢你的回答! 编辑:顺便说一下,我正在使用python。你知道吗


Tags: 数据apple数字aircar老实regexface
2条回答

将匹配锚定到行的开头(^是使用多行标志时行的开头),并匹配非数字:

(?m)^\D*

将匹配项替换为空白以将其删除。你知道吗

更新:
要使所有内容都达到但不包括最后一个数字,请使用“向前看”:

(?m)^.*(?=\d)

如果要在遇到这些数字或所有文本之前匹配文本,则可以使用单词边界\balternation来匹配任何字符,直到遇到单词边界后跟数字(使用正向先行),或者不匹配数字或新行。你知道吗

^(?:.*(?=\b\d)|[^\d\n]+)

Regex demo

如果要匹配新行,可以使用\D+而不是[^\d\n]+

相关问题 更多 >