目录
一、字符串处理
二、正则表达式函数说明
三、数据库遇到float数据类型存储的问题
四、参考帖子
一、字符串处理
1、判断字符串是否全部为数字:isdigit()
2、正则表达式判断字符串是否为ip地址:
pattern = r'^((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))$'
result = re.match(pattern, domain)
3、正则表达式判断字符串是否为域名:
pattern = r'^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$'
result = re.match(pattern, domain)
DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母。标号中除连字符(-)外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的域名写在最右边。由多个标号组成的完整域名总共不超过255个字符。
4、获取连续字符个数
使用正则表达式将字符串进行分片,分片依据为是否是连续字符,然后再对分片的长度进行统计。
#第一种解法
sep = '|'
separated_s = re.sub(r'(.)\1*', lambda m: m.group(0)+sep, str1)#lambda作为一个表达式,定义了一个匿名函数,代码m为入口参数,m.group(0)+sep为函数体,即返回值。在这里lambda简化了函数定义的书写形式。
for node in separated_s.split(sep)[:-1]: len_node = len(node)
if len_node>1:
count+=len_node
#第二种解法
it = re.finditer(r'(.)\1*', str1)for node in it:
len_node = len(node.group())#注意这里的.group()
if len_node>1:
count+=len_node
5、计算连续辅音字母个数
使用正则表达式将字符串进行分片,分片依据为是否是连续辅音字符,然后再对分片的长度进行统计。
it = re.finditer(r'([bcdfghjklmnpqrstvwxyz])*', str1)
for node in it:#print node.group()
len_node = len(node.group())
if len_node>1:
count+=len_node
6、是否存在字母间数字
使用正则表达式进行匹配
result = re.search(r'[a-z][0-9][a-z]', str1)
7、字符串包含特定字符的个数
pattern = re.compile(r'-')
result = pattern.findall(str1)
return len(result)
二、正则表达式函数说明
re.match函数
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
函数语法:
re.match(pattern, string,