正则表达式匹配所有字符,直到ti达到数字

时间:2018-09-30 21:48:58

标签: python regex

我刚遇到正则表达式。老实说,正则表达式有时会吓我一跳,但我正在努力学习。所以,我之前曾问过一个问题,现在我又来了另一个问题。我有以下示例数据,我想做的就是在数字前选择所有内容。

read -rp "Prompt: " input >&6

所以我想要的输出是

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

我尝试过这个:

pencil apple car
beef sun shirt
face building air

但这仅选择第一行。感谢您的回答! 编辑:顺便说一句我使用python。

2 个答案:

答案 0 :(得分:2)

将匹配项锚定到行首(使用多行标记时,^ line 的开始),并匹配非数字:

(?m)^\D*

将匹配项替换为空白以删除它。

更新:
要使所有内容不超过最后一位,但不包括最后一位,请使用向前看:

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

答案 1 :(得分:0)

如果要匹配文本直到遇到这些数字或所有文本,可以使用单词边界\balternation来匹配任何字符,直到遇到单词边界后跟一个数字,请使用正向前瞻,或者不匹配数字或换行。

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

Regex demo

如果您想匹配新行,则可以使用\D+代替[^\d\n]+