正则表达式 pyhton

2020-1-1
python笔记;正则表达式;RegEx

正则表达式

str

  • 不可变类型–可hash
    • tuple str freezeset
  • 可变类型–不可hash
    • list set
import re

a='Beautiful, is; better*than\nugly'
# 四个分隔符为:,  ;  *  \n
x
x= re.split(',|; |\*|\n',a)
print(x)

str.strip([chars]);
该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
返回移除字符串头尾指定的字符生成的新字符串。

str.replace(old, new[, max])
返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。

str.endswith(suffix[, start[, end]])
如果字符串含有指定的后缀返回True,否则返回Falsestr.find(str, beg=0, end=len(string))
如果包含子字符串返回开始的索引值,否则返回-1str.zfill(width)
Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。
返回指定长度的字符串。

regex-test

import re
'''
说明没有匹配到的时候,返回的是空列表"[]"
'''

try:
    RegEx = r'\(\d+\)'
    matchs = re.compile(RegEx).findall('sdfasd(1.2)')
    print(repr(matchs))
except:
    # when: re.compile(RegEx).findall('sdfasd(1.2)') == []
    raise SystemError('请检查输入源')

python正则表达式

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。

1)正则表达式含义

. # 点可代表一切字符
\ # 起转义作用
[...] # 指代方括号中的任意字符
\d # 指代数字0-9
\D # 指代非数字
\s # 指代一切空格,包括tab制表符、空格、换行等
\S # 指代非空格
\w # 指代大小写字母、数字和下划线
\W # 指代非大小写字母、数字和下划线
* # 匹配前面字符 >=0 次
+ # 匹配前面字符1次及以上
? # 匹配前面字符0次或1次
{m} # 匹配m次
{m,n} # 匹配m到n次
{m,} # 至少匹配m次

\w	匹配数字字母下划线=[A-Za-z0-9_]
\W	匹配非数字字母下划线=`[^A-Za-z0-9_]`
\s	 匹配任何空白字符=[ \f\n\r\t\v]   **(\n\s*\r)匹配空白行**
\d	 匹配任意数字,等价于[0-9]
\b	 'er\b' 可以匹配never中的'er',不匹配nerd中的'er'

2)结合re模块完成字符串的匹配
2.1)找

re.findall(pattern, string, flags=0)
pattern-->正则表达式
string-->需要处理的字符串
flags-->说明匹配模式,如是否大小写re.I
注:findall不同的表现形式:
import re
第一种
kk = re.compile(r'\d+')
kk.findall('one1two2three3four4')
#[1,2,3,4]
 第二种
#注意此处findall()的用法,可传两个参数;
kk = re.compile(r'\d+')
re.findall(kk,"one123")
第三种
kk = "one123"
re.findall(r'\d+',kk)

2.2)切

re.split(pattern, string, maxsplit=0, flags=0)
pattern-->正则表达式
string-->需要处理的字符串
maxsplit-->最大匹配次数。0表示匹配所有次

2.3)替

sub(pattern, repl, string, count=0, flags=0)
pattern-->正则表达式
repl-->新的替换内容
string-->需要处理的字符串
count-->替换次数。0表示匹配替换所有次
flags-->匹配模式

小结:

  1. (THE|The|the),通过竖线|可以多个可选模式中匹配一个
  2. 括号()内的模式和字符组[]都可以看做一个分组
  3. 括号()内的分组会被捕获到内存中,使用\1或者$1后向引用
  4. 通过命名的分组可以用名字来后向引用
  5. (?:the|The|THE)非捕获分组不会存在内存中,以提高性能

乱入

md2doc/html/pdf

将markdown文件转换为 .docx .html .pdf 文件

命令行中如下操作:
cd d/ 填写md文件所在目录
pip install pandoc
pandoc.exe --version #result: pandoc.exe 2.2.3.2
pandoc file.md -s -o file.docx

npm install i5ting_toc -g
i5ting_toc -f file.md

键盘符号

asterisk星号 (paren.left [bracketleft {braceleft \backslash
,comma ^caret :colon
—dash
.period

回车是CR,\r,0x0d(return) 表示光标重新回到本行开头carriage return
换行是LF,\n,0x0a(new line)表示光标垂直向下移动一行Line Feed
Unix系统里,每行结尾只有“<换行>”,即"\n";
Windows系统里面,每行结尾是“<换行><回车>”,即“\r\n”;

软件版本号

GNU版
主版本号 . 子版本号 [. 修正版本号 [. 编译版本号 ]]
Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]]
示例 : 1.2.1, 2.0, 5.0.0 build-13124

Windows版
主版本号 . 子版本号 [ 修正版本号 [. 编译版本号 ]]
Major_Version_Number.Minor_Version_Number[Revision_Number[.Build_Number]]
示例: 1.21, 2.0

Net.Framework版
主版本号.子版本号[.编译版本号[.修正版本号]]
Major_Version_Number.Minor_Version_Number[.Build_Number[.Revision_Number]]

测试版

α版 内测版CB 一个初步完成品,通常只在软件开发者内部交流
β版 (beta)公测版 相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷
γ版 候选版RC 该版本已经相当成熟了,与即将发行的正式版相差无几
RC版(发布候选版)Release Candidate 它不是最终的版本,而是最终版(RTM=Release To Manufacture)之前的最后一个版本。

演示版

trial(试用版)过期后一般得缴纳一定的费用进行注册或购买
unregistered 未注册版与试用版极其类似,只是未注册版通常没有时间限制,在功能上相对于正式版做了一定的限制
demo版 也称为演示版,在非正式版软件中,该版本的知名度最大

正式版

release 该版本意味“最终释放版”,测试版之后,终归会有一个正式版本。亦称标准版,用符号?,如windows nt? 4.0、ms-dos? 6.22等.
registered 很显然,该版本是与unregistered相对的注册版
standard 这是最常见的标准版,不论是什么软件,标准版一定存在
deluxe 顾名思义即为“豪华版”
reference 该版本型号常见于百科全书中,比较有名的是微软的encarta系列。reference是最高级别
professional 专业版是针对某些特定的开发工具软件而言的
enterprise(企业版) 企业版是开发类软件中的极品
其他版
update(升级版)升级版的软件是不能独立使用的
oem版 oem版通常是指捆绑在硬件中而不单独销售的版本
单机/网络版 网络版在功能、结构上远比单机版复杂
普及版 该版本有时也会被称为共享版

猜你喜欢

转载自blog.csdn.net/karl_clemens/article/details/103760270