Python正则表达式如何匹配特殊字符串

 更新时间:2025年02月06日 08:43:47   作者:wjjontheway  
文章主要介绍了如何使用Python正则表达式匹配和提取特定格式的字符串,通过示例,展示了如何从一串字符串中提取符合特定模式的子字符串,并输出结果,文章还提到了一些正则表达式的应用经验,并鼓励读者参考和使用脚本之家提供的资源

Python正则表达式匹配特殊字符串

匹配特殊的字符串

匹配字符串中特定格式的字符串, 在一串字符串中,先找到特殊规则的substring, 然后再提取相关的位置value

strings = ['result-2023-08-18-6g1s1ch-DB9909',  
           'result-2023-08-18-4g1s3ch-DB9909',
           'result-2023-08-18-1g4s1ch-DB9909',
           'result-2023-08-18-1g1s1ch-DB9909']

pattern = r'(\d+)([Gg])(\d+)([Ss])(\d+)([Cc][Hh])' 

results = []
for s in strings:
    match = re.search(pattern, s)
    if match:
        print(match.group())
        g = match.group(2)  #匹配第2个括号的内容
        s = match.group(4)  #匹配第4个括号的内容
        ch = match.group(6) #匹配第6个括号的内容
        string = match.group(1) + g + match.group(3) + s + match.group(5) + ch
        results.append(string)
print(results)


db_pattern = r'([Dd][Bb])(\d+)'

match = re.search(db_pattern, strings[0])
if match:
    print(match.group())
    db = match.group(1)      #匹配第2个括号的内容
    number = match.group(2)  #匹配第4个括号的内容
    db_number = db + number

输出内容

6g1s1ch
4g1s3ch
1g4s1ch
1g1s1ch
['6g1s1ch', '4g1s3ch', '1g4s1ch', '1g1s1ch']
DB9909

提取特殊的字符串

fullDump_pDevice00000286923A19B0_frame000_1g1s1ch.gfxbench_inst2_F535

pDevice后面可能是一串其他数字和字母,只需要截取从frame001开始的字符串,如:

frame000_1g1s1ch.gfxbench_inst2_F535
import re

s = "fullDump_pDevice00000286923A19B0_frame000_1g1s1ch.gfxbench_inst2_F535" 

# Match the prefix to remove
prefix_pattern = r'^fullDump_pDevice\d+_'

# Use sub() to remove the matched prefix
result = re.sub(prefix_pattern, '', s)

print(result)

上述正则表达式并不能准确替换掉,输出结果还是原来的字符串:

fullDump_pDevice00000286923A19B0_frame000_1g1s1ch.gfxbench_inst2_F535

后使用如下表达式:

s = "fullDump_pDevice0000028fd3B19D0_frame000_1g1s1ch.gfxbench_inst2_F535" 
prefix_pattern = r'^fullDump_pDevice(\d+)([A-Za-z0-9]+)_'
new = re.sub(prefix_pattern, "", s)
print(new)

输出结果:

frame000_1g1s1ch.gfxbench_inst2_F535

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python使用Ollama API的详细代码示例

    Python使用Ollama API的详细代码示例

    这篇文章主要介绍了如何在Python中使用OllamaAPI,涵盖了从环境准备、使用方法到高级功能的全面指南,无论是初学者还是经验丰富的开发者都能从中受益,需要的朋友可以参考下
    2025-02-02
  • ubuntu17.4下为python和python3装上pip的方法

    ubuntu17.4下为python和python3装上pip的方法

    今天小编就为大家分享一篇ubuntu17.4下为python和python3装上pip的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python堆排序的实现示例

    Python堆排序的实现示例

    堆排序是一种基于二叉堆数据结构的排序算法,本文主要介绍了Python堆排序的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • Django解决frame拒绝问题的方法

    Django解决frame拒绝问题的方法

    这篇文章主要介绍了Django解决frame拒绝问题的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

    使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

    这篇文章主要介绍了使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”,笔者用 Python 爬取淘宝某商品的全过程,并对商品数据进行了挖掘与分析,最终得出结论。需要的朋友可以参考下
    2018-03-03
  • Python 用户输入和字符串格式化示例详解

    Python 用户输入和字符串格式化示例详解

    Python 允许用户输入数据。这意味着我们可以向用户询问输入,这篇文章主要介绍了Python 用户输入和字符串格式化指南,以下示例要求用户输入用户名,并在输入用户名后将其打印在屏幕上,需要的朋友可以参考下
    2023-11-11
  • 如何将Pycharm中Terminal使用Powershell作为终端

    如何将Pycharm中Terminal使用Powershell作为终端

    这篇文章主要介绍了如何将Pycharm中Terminal使用Powershell作为终端问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • pyqt5圆形label显示打开的摄像头功能

    pyqt5圆形label显示打开的摄像头功能

    本文主要给大家讲解如何使用pyqt5打开摄像头并在label上显示,以及优化成圆形label框。通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2022-01-01
  • peewee创建连接前的前置操作wireshark抓包实现

    peewee创建连接前的前置操作wireshark抓包实现

    这篇文章主要为大家介绍了peewee创建连接前的前置操作wireshark 抓包实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Python Django中的STATIC_URL 设置和使用方式

    Python Django中的STATIC_URL 设置和使用方式

    这篇文章主要介绍了Python Django中的STATIC_URL 设置和使用方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03

最新评论