正则表达式匹配具有特定字符限制的交替单词和数字

问题描述 投票:0回答:1

我正在尝试匹配字符串中的模式,其中字符串在单词和数字之间交替(例如“apple 123 Orange 4567”),单词只能包含字母(大写和小写),数字可以有不同的长度,但必须仅包含数字。

示例:

apple 123 orange 4567
banana 8 pineapple 999

但我想排除一些情况,例如,

apple123 4567, 123apple 123

所以...

我尝试过

\b[a-zA-Z]+\s\d+\b
。这适用于单个单词-数字对,但它不能确保整个字符串在单词和数字之间交替。此外,它不会阻止像 apple123 或 123apple 这样的序列。如何修改正则表达式以确保字符串在单词和数字之间交替,排除混合的单词数字序列并在整个字符串(而不仅仅是孤立的对)中匹配此模式?

python regex
1个回答
0
投票

你的正则表达式有效。很可能是你的 Python 代码不正常。我猜你忘记了 r 字符串的

r

import re
test_cases=["apple 123 orange 4567", "apple123 4567, 123apple 123"]
for test_case in test_cases:
    x = re.findall(r"\b[a-zA-Z]+\s\d+\b", test_case)
    if not x:
        print("no match in " + test_case)
    for word in x:
        print(word)
© www.soinside.com 2019 - 2024. All rights reserved.