Python正则表达式帮助,在遇到字母之前匹配任何内容

Python正则表达式帮助,在遇到字母之前匹配任何内容,python,regex,Python,Regex,测试用例: 22 s # 22 1.4 I # 1.4 4.4.5 Apple # 4.4.5 1993 # 1993 我只想得到[A-z]或[A-z]之前的一切 谢谢试试这个正则表达式: r'^[^a-zA-Z]+' 我怀疑您不希望包含尾随空格,因此匹配“22 s”会得到“22”而不是“22”: 或者,您可以在@boltclock的正则表达式上匹配“^([^A-Za-z]+)”和rtrim。+1。将来,您可能希望尝试使用正则表达式编辑器来帮助您试验和开发正则表达式。l

测试用例:

22 s    # 22
1.4 I   # 1.4
4.4.5 Apple    # 4.4.5
1993    # 1993
我只想得到[A-z]或[A-z]之前的一切

谢谢

试试这个正则表达式:

r'^[^a-zA-Z]+'

我怀疑您不希望包含尾随空格,因此匹配“22 s”会得到“22”而不是“22”:


或者,您可以在@boltclock的正则表达式上匹配“^([^A-Za-z]+)”和rtrim。

+1。将来,您可能希望尝试使用正则表达式编辑器来帮助您试验和开发正则表达式。line.split()[0]应该能够满足您的所有测试用例;)
>>> regex = r"^([^A-Za-z]+?)\s*(?:[A-Za-z]|$)"
>>> for input, expected in [
...   ("22 s", "22"),
...   ("1.4 I", "1.4"),
...   ("4.4.5 Apple", "4.4.5"),
...   ("1993", "1993"),
...   ("1993 ", "1993"),
...   ("1 2 3 a", "1 2 3"),
...   ("1 2 3 ", "1 2 3"),
... ]:
...   assert re.match(regex, input).group(1) == expected
...
>>> # no AssertionError means success