1.3.5 使用 search()在一个字符串中查找模式(搜索与匹配的对比) 其实,想要搜索的模式出现在一个字符串中间部分的概率,远大于出现在字符串起始部分的概率.这也就是 search()派上用场的时候了. search()的工作方式与 match()完全一致,不同之处在于 search()会用它的字符串参数,在任意位置对给定正则表达式模式搜索第一次出现的匹配情况.如果搜索到成功的匹配,就会返回一个匹配对象: 否则, 返回 None.我们将再次举例说明 match()和 search()之间的…
1.3.4使用 match()方法匹配字符串(第一次写博客,格式,述语有不当之处还请见谅)2018-05-08 Python 代码是以Jupyter Notebook编写的,主要写的是python3的代码,有不兼容之处还请见谅.本人小白,虽然之前自学过python语言的基础,但是学完之后感觉还是很模糊. 主要是将python核心编程书中的代码知识自己写一遍熟悉一下,加深理解.其中程序运行结果很简单,在程序代码中基本备注清楚. 首先,我们得知道match()函数的基本用法与作用: match()是…
1.3.6 匹配多个字符串(2018-05-08) 我们在正则表达式 bat|bet|bit 中使用了择一匹配(|)符号.如下为在 Python中使用正则表达式的方法. import re #bat|bet|bit 中使用了择一匹配(|)符号 bt = 'bat|bet|bit' # 正则表达式模式: bat. bet.bit m = re.match(bt,'bat') # 'bat' 是一个匹配 if m is not None: print(m.group()) print("match…
1.3.7 匹配任何单个字符 (2018-05-08) 点号(.)不能匹配一个换行符\n 或者非字符,也就是说,一个空字符串 搜索一个真正的句点(小数点), 而我们通过使用一个反斜线对句点的功能进行转义: import re #点号(.)不能匹配一个换行符\n 或者非字符,也就是说,一个空字符串. anyend = '.end' m = re.match(anyend, 'bend') # 点号匹配 'b' if m is not None: print("match success"…
正如前一篇随笔所提到的,python属于解释型语言 python语言有两个特点: 1.胶水语言(历史遗留问题,原来Perl语言作为Unix内置标准件,获得极大追捧,作为竞争者的python一开始是作为小三,与shell语言以及Perl语言和谐共处来融入Linux家族,所以被称为胶水语言.但随着Unix的闭源,Perl热度消减,于是python开始“穿Perl的衣服”,最后登堂入室,获得了比Perl更高的市场占有率) 2.调包侠(写python程序,面对需求时,很多时候的第一反应是去找是否有已经实…
需求很简单,是从一段文本中匹配出其中的超链接.基本的做法就是用正则表达式去匹配.但是有这样一个问题. 网上大部分的识别URL的正则表达式url末尾有空格的情况下可以正确识别.比如这样的情况: "我是一段中文https://github.com/TinyQ 我还是一段中文" 但是如果去掉TinyQ 后面的空格.匹配到的将是 “https://github.com/TinyQ我还是一段中文” 是连上的. 最后替换过好多正则才得以解决.这里贴上代码: NSString *regulaStr…
以下代码是在一段字符串中,用正则表达式找到数字,使用 replace() 方法,用找到的数字的两倍值替换原数字.replace() 方法的第二个参数为一个函数,返回找到数字的两倍值. <script> var str="去年是2014年,今年是2015年"; var newStr=str.replace(/\d+/g, function () { //调用方法时内部会产生 this 和 arguments console.log(arguments[0]); //查找数字后…
1.3.8 创建字符集([ ]) (2018-05-0815:24:00) 下面的示例将说明对于 r2d2|c3po 的限制将比[cr][23][dp][o2]更为严格 import re # 下面的示例将说明对于 r2d2|c3po 的限制将比[cr][23][dp][o2]更为严格 m = re.match('[cr][23][dp][o2]', 'c3po')# 匹配 'c3po' if m is not None: print(m.group()) print("match succes…
# -*- coding: utf-8 -*-__author__ = 'Administrator'import bisect#简化一些操作#1:在一个列表中查找"""说明:需要在一个列表的实例中提供一个搜索算法,对该列表的已排序版本执行二分查找就可以将复杂度从o(n)降至o(log n)"""def listfind(seq,el):    pos=bisect.bisect(seq,el)    if pos==0 or (pos==len…
name1 = 'zcl,pyzyz'names = ['zcl','py','zyz'] #切片的意思就是从list里面或者字符串里面取几个元素#切片操作对字符串也是完全适用的 # print(names[0:2]) 输出为:['zcl','py']#从第几个取到第几个,这个也是顾头不顾尾# print(names[:2]) 输出为:['zcl','py']# #如果是从第一个开始取,取到某一个下标结束,那么最前面是可以不写的# print(names[1:]) 输出为:['py','zyz'…