0

快速正则表达式问题。

我想要一个表达式,它可以找到一行中的第一个数字以及该行末尾的一个单词。(这将排除其中的任何数字)

IE 如果字符串是“12345hello”,那么我希望正则表达式找到“1hello”

或者即使是“12345hel45667lo”也能找到相同的东西。

我有第一个数字,但我认为可行的表达是:

print re.findall(r'^\d\D+',string)

这只是给我空括号,或者如果我取出 \D,则给我第一个数字。是什么赋予了?

编辑:如果我输入 | 因为或者然后我得到了我想要的东西。返回字符串中的单词以及第一个数字,但在单独的分组中。我想要这一切合而为一。

4

2 回答 2

2
print re.findall(r'^\d|\D+',string)

print re.sub(r'(?<!^)\d', '', "12345hel45667lo9a") -> '1helloa'
于 2012-09-27T01:45:28.880 回答
0

我唯一能想到的就是运行一个 for 循环来扫描字符串中的字母并将它们组合起来。

于 2012-09-27T23:41:38.093 回答