插件窝 干货文章 Python正则表达式:如何匹配指定字符串后跟数字?

Python正则表达式:如何匹配指定字符串后跟数字?

数字 匹配 后跟 字符串 614    来源:    2025-03-14

在Python中,你可以使用正则表达式来匹配指定字符串后跟数字的模式。假设你想匹配的指定字符串是 "abc",并且后面跟着一个或多个数字,你可以使用以下正则表达式:

import re

# 示例字符串
text = "abc123 xyz456 abc789"

# 正则表达式模式
pattern = r'abc\d+'

# 查找所有匹配项
matches = re.findall(pattern, text)

print(matches)

解释:

  • abc:匹配指定的字符串 "abc"
  • \d+:匹配一个或多个数字(\d 表示数字,+ 表示一个或多个)。
  • r'abc\d+':使用原始字符串(r 前缀)来避免转义字符的问题。

输出:

['abc123', 'abc789']

其他情况:

  1. 匹配指定字符串后跟固定长度的数字: 如果你想匹配 "abc" 后跟固定长度的数字(例如3位数字),可以使用 \d{3}

    pattern = r'abc\d{3}'
    
  2. 匹配指定字符串后跟任意长度的数字: 如果你想匹配 "abc" 后跟任意长度的数字(包括零个或多个),可以使用 \d*

    pattern = r'abc\d*'
    
  3. 匹配指定字符串后跟数字,并且数字是可选的: 如果你想匹配 "abc" 后跟数字,但数字是可选的(即可以没有数字),可以使用 \d*

    pattern = r'abc\d*'
    
  4. 匹配指定字符串后跟数字,并且数字必须存在: 如果你想确保 "abc" 后至少有一个数字,可以使用 \d+

    pattern = r'abc\d+'
    

示例:

import re

text = "abc123 xyz456 abc789 abc"

pattern = r'abc\d+'
matches = re.findall(pattern, text)

print(matches)  # 输出: ['abc123', 'abc789']

在这个例子中,"abc" 后面没有数字的情况不会被匹配到。