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

时间:2011-01-21 05:04:21

标签: python regex

测试案例:

22 s    # 22
1.4 I   # 1.4
4.4.5 Apple    # 4.4.5
1993    # 1993

我想要的就是[A-z]或[a-z]

之前的一切

由于

2 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

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

答案 1 :(得分:1)

我怀疑你不想包含尾随空格,所以匹配“22 s”会给你“22”而不是“22”:

>>> 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

或者,之后你可以匹配“^([^ A-Za-z] +)”和rtrim。