练习系列1,用来增加正则表达式的熟悉程度。

本文会有以下内容,目前正在更新

  1. 匹配图片名称
  2. 匹配绝对位置图片
  3. 匹配绝对位置图片并去除非法字符

正则表达式在什么语言环境下都可以使用,用Python是因为我觉得这个写起来最直白最简单,不懂编程语言的人都可以当作一个自然语言一样读。

小练习1,匹配图片名称,带图片格式的尾椎

要求:一堆乱七八糟的字符中

“ahshsgwhvqbhzbbbabhq zjjqm122.png ahshbxvuzh.jjnhahbsvxhuw hzbbebbxhwn.jpp ahbxuwbbq827!u3;djzhxbbxnz zjhsh.jpeg zbzuxbbz~22.jpg zhsuzbbq23izjsjbxbd’! 78.jpg”,
匹配出正确的图片格式,注意,正确的图片格式包括.jpg和.png以及.jpeg三个。
代码如下:
import re

# 这是哪一行乱七八糟的东西,需要从里面提出图片类型的尾椎
Line = "ahshsgwhvqbhzbbbabhq zjjqm122.png ahshbxvuzh.jjnhahbsvxhuw hzbbebbxhwn.jpp ahbxuwbbq827!u3;djzhxbbxnz zjhsh.jpeg zbzuxbbz~22.jpg zhsuzbbq23izjsjbxbd'! 78.jpg"

# re.I 表示忽略大小写
# \S表示非空格,这里用\w会不正确
matchObj = re.compile(r'\S*\.?jpg|\S*\.?png|\S*\.?jpeg',re.I)

print(matchObj.findall(Line))  # 查找所有的图片格式jpe,png,jpeg

内容比较简单可以自己理解

小练习2,匹配图片的绝对位置,带图片格式的尾椎

以Windows为例(Linux操作系统的绝对相对位置又是另一套说辞),一个合理的相对位置应该包括:盘符:\文件夹1(可没有)\文件夹2(亦可没有)\文件.尾椎 

要求:给定如下字符内容进行匹配:

ahshsgwhvqbhzbbbabhq zjjqm122.png c:ahshbxvuzh.jjnhahbsvxhuw hzbbebbxhwn.jpp ahbxuwbbq827!u3;djzhxbbxnz D:\zjhsh.jpeg
zbzuxbbz~22.jpg zhsuzbbq23izjsjbxbd’! d:\78.jpgahshsgwhvqbhzbbbabhq
zjjqm122.png ahshbxvuzh.ff:\\\jjnhahbsvxhuw e:hzbbebbxhwn.jpp c:\ahbxuwbbq827!u3;djzhxbbxnz zjhsh.jpeg zbzuxbbz~22.jpg zhsuzbbq23izjsjbxbd’! 78.jpg
ahshsgwhvqbhzbbbabhq c:\filesystem\zjjqm122.png ddc:ahshbxvuzh.jjnhahbsvxhuw hzbbebbxhwn.jpp ahbxuwbbq827!u3;djzhxbbxnz D:\zjhsh.jpeg
zbzuxbbz~22.jpg zhsuzbbq23izjsjbxbd’! d:\78.jpgahshsgwhvqbhzbbbabhq
zjjqm122.png ahshbxvuzh.ff:\\\jjnhahbsvxhuw e:hzbbebbxhwn.jpp c:\ahbxuwbbq827!u3;djzhxbbxnz zjhsh.jpeg zbzuxbbz~22.jpg zhsuzbbq23izjsjbxbd’! 78.jpg g:\*&^%$.jpg h&^& c:\#@.jpg c://x.jpg d:/.jpg
c:\filesystem\zjjqm122.png c:\filesystem\zjjqm1232.png c:\filesystem/\zjjqm1242.png
d:\filesystem\a___zjjqm122.jpeg ahshsgwhvqbhzbbbabhq
f:\filesystem\-_zjjqm122.jpg ahshsgwhvqbhzbbbabhq ahshsgwhvqbhzbbbabhq
g:\filesystem\?zjjqm122.png ahshsgwhvqbhzbbbabhq
ahshsgwhvqbhzbbbabhq c:\ahshsgwhvqbhzbbbabhq
a:\aaa.txt c:\aaa\bbb\ccc\ddd\eee\fff\ggg\hh\x.jpg
e:\asdasdwjqdkalslkd\xckzjxckcjzkxl.pngahshsgwhvqbhzbbbabhq zjjqm122.png c:ahshbxvuzh.jjnhahbsvxhuw hzbbebbxhwn.jpp ahbxuwbbq827!u3;djzhxbbxnz D:\zjhsh.jpeg
zbzuxbbz~22.jpg zhsuzbbq23izjsjbxbd’! d:\78.jpgahshsgwhvqbhzbbbabhq e:\asdasdwjqdkalslkd7\123..png ahshsgwhvqbhzbbbabhq zjjqm122.png c:ahshbxvuzh.jjnhahbsvxhuw hzbbebbxhwn.jpp ahbxuwbbq827!u3;djzhxbbxnz D:\zjhsh.jpeg
zbzuxbbz~22.jpg zhsuzbbq23izjsjbxbd’! d:\78.jpgahshsgwhvqbhzbbbabhq h:\a\b\c.jpeg

注意增加了难度,变为存在\n换行符,请注意处理

代码:

 

小练习2,匹配图片的绝对位置,带图片格式的尾椎

以Windows为例,一个文件总有一些非法的单词无法输入变成命名,在小练习2的基础上去除非法文件格式,以下为非法格式:

  1. /
  2. \
  3. :
  4. *
  5. ?
  6. <
  7. >
  8. |

/ \如果用作文件名,会产生路径问题.因为绝对路径用 \ ; 相对路径用  / ;

代码:

分类: PYTHON

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注