Python首先从字符串打印N个整数

pyC*_*hon 0 python

是否可以在python中使用正则表达式从包含整数和字符的字符串中打印前n个整数?

例如:

string1 = 'test120202test34234e23424'
string2 = 'ex120202test34234e23424'

foo(string1,6)  => 120202
foo(string2,6) => 120202
Run Code Online (Sandbox Code Playgroud)

Mik*_*ham 5

没有正则表达式,一切皆有可能.没有正则表达式,大多数事情都是可取的.

简单的方法是.

>>> str = 'test120202test34234e23424'
>>> str2 = 'ex120202test34234e23424'
>>> ''.join(c for c in str if c.isdigit())[:6]
'120202'
>>> ''.join(c for c in str2 if c.isdigit())[:6]
'120202'
Run Code Online (Sandbox Code Playgroud)

您可能希望以某种特定方式处理您的角落案例 - 这一切都取决于您对代码应该做什么.

>>> str3 = "hello 4 world"
>>> ''.join(c for c in str3 if c.isdigit())[:6]
'4'
Run Code Online (Sandbox Code Playgroud)

并且不要命名你的字符串str!

  • 我建议分解'''.join(如果c.isdigit(),[:6]`,则为str中的c.如果您不熟悉Python,那么可以参与其中 (2认同)
  • 如果他们想要其他人可以 - http://stackoverflow.com/posts/21802062/edit - 但我会在这里留下一些提示,让那些想要做自己的腿部工作的人:1.字符串迭代他们的字符,(`c`代表上面的字符),2.奇怪的`x for x in xs if foo(x)`notation是"generator expression"(类似的概念是"list comprehension"),3. `foo [:6]`符号是"切片". (2认同)