str.replace()可以进行简单的替换

>>> a = 'one.txt, index.py, index.php, index.html, index.js'
>>> a.replace('one.txt', 'index.css')
'index.css, index.py, index.php, index.html, index.js'

re.sub()可以使用正则替换

>>> import re
>>> a
'one.txt, index.py, index.php, index.html, index.js'
>>> re.sub(r'\.[a-z]+', '.csv', a)
'one.csv, index.csv, index.csv, index.csv, index.csv'

# re.sub还可以保留原字符串的大小写(不过要麻烦一些)

import re
text1 = 'UPPER PYTHON, lower python, Capitalize Python'
def python_deal(word):
def replace_word(m):
text = m.group() # 接收re.sub()函数第一个参数匹配的内容
# 进行word(新字符串)的转换
if text.isupper():
return word.upper()
elif text.islower():
return word.lower()
elif text[0].isupper():
return word.capitalize()
else:
return word
return replace_word
# re.IGNORECASE 可以忽略大小写的区别,还有值得注意的是re.IGNORECASE的键(flags)必须写
# re.sub()第二个参数使用函数的话,里面必须是回调函数,而且回调函数的参数必然是re.sub第一个参数匹配的内容
print(re.sub('python', python_deal('new_python'), text1, flags=re.IGNORECASE))

使用calendar.month_abbr

# 可以将字符串/数字进行转换成为对应的因为月份

>>> from calendar import month_abbr
>>> month_abbr[int('')]
'Dec'

使用re.subn()

# 进行统计进行替换的次数

import re
text1 = 'namejr04/15/1996, abc11/17/2018, qwe11/17/2017'
# 匹配时间字符
date_sub = re.compile(r'(\d+)/(\d+)/(\d+)')
new_sub, n = date_sub.subn(r'\3-\1-\2', text1) # 获取新替换的字符串和替换的次数
print(new_sub)
print(n)
"""
D:\笔记\python电子书\Python3>python index.py
namejr1996-04-15, abc2018-11-17, qwe2017-11-17
3
"""

upper()/lower()/capitalize()转换字母

>>> a = 'hello world'
>>> b = a.upper() # 将全部字母转换为大写
>>> b
'HELLO WORLD'
>>> c = b.lower() # 将全部字母转换为小写
>>> c
'hello world'
>>> d = c.capitalize() # 将首字母进行大写,其他字母转换为小写
>>> d
'Hello world'

贪婪模式和费贪婪模式

# 贪婪匹配会匹配到尽可能多的字符

>>> a
"i love 'my father' and 'my mother' and 'my brothers'"
>>> re.findall(r'\'(.*)\'', a) # 匹配到的"'"是最前面一个和最后面一个
["my father' and 'my mother' and 'my brothers"] # 非贪婪匹配匹配到的尽可能少的字符(满足匹配条件的情况下)
>>> a
"i love 'my father' and 'my mother' and 'my brothers'"
>>> re.findall(r'\'(.*?)\'', a) # 匹配到的是每一对单引号里面的内容
['my father', 'my mother', 'my brothers']

使用re.S/re.DOTALL进行换行符的匹配

import re
a = """*onrtsdddddddddd
onehellow
addd
*"""
# 使用re.S和re.DOTALL匹配出来的内容都是一样的,都表示包括换行符内容的匹配
str_patter1 = re.compile(r'\*(.*)\*', re.DOTALL)
print(str_patter1.findall(a))
"""
D:\笔记\python电子书\Python3>python index.py
['onrtsdddddddddd\nonehellow\naddd\n']
"""

str.replace()和re.sub()/calendar.month_abbr/re.subn()/upper和lower和capitalize/贪婪匹配和费贪婪匹配/re.S和re.DOTALL 笔记的更多相关文章

  1. Pandas: 使用str.replace() 进行文本清洗

    str.replace()可以一次处理一整个Series.str.replace()的正式形式为 Series.str.replace(pat, repl) ,其中pat为想要寻找的模式,一般为正则表 ...

  2. 使用Pandas: str.replace() 进行文本清洗

    前段时间参加了Kaggle上的Mercari Price Suggestion Challenge比赛,收获良多,过些时候准备进行一些全面的总结,本篇文章先谈一个比赛中用到的小技巧. 这个比赛数据中有 ...

  3. Uncaught TypeError: str.replace is not a function

    在做审核页面时,点击审核通过按钮不执行 后来F12控制台查看发现有报错 是因为flisnullandxyzero未执行 然后找出这个方法,此方法为公共方法,将这个方法复制出来 然后使用console. ...

  4. str.replace替换变量名的字符串

    网易云课堂该课程链接地址 https://study.163.com/course/courseMain.htm?share=2&shareId=400000000398149&cou ...

  5. js实现千位分隔符——str.replace()用法

    /*js*/function commafy(num){ return num && num.toString().replace(/(\d{1,3})(?=(\d{3})+(?:$| ...

  6. Python 个人的失误记录之str.replace

    1. replace 替换列表中元素的部分内容后返回列表 2018.06.08 错误操作 -- 这样并不能改变改变列表内的元素 data = [', '决不能回复---它'] data[2].repl ...

  7. STL str replace

    #include <iostream> #include <string> using namespace std; void main() { string s=" ...

  8. 【javascript杂谈】你所不知道的replace函数

    前言 最近在做面试题的时候总会用到这个函数,这个函数总是和正则表达式联系到一起,并且效果很是不错,总能很简单出色的完成字符串的实际问题,大家肯定都会使用这个函数,像我一样的初学者可能对这个函数的了解还 ...

  9. js中replace的用法【转】

    1.replace方法的语法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp ...

随机推荐

  1. python 爬虫newspaper3k 新闻爬去方法 利用第三方库

    from newspaper import Article url = '你想要爬取的网站url' news = Article(url, language='zh') news .download( ...

  2. 使用golang编写prometheus metrics exporter

    metrcis输出 collector.go package main import ( "github.com/prometheus/client_golang/prometheus&qu ...

  3. Popover 弹出框 设置top,显示有时是向下的,解决方式

    参数里面有个popper-options,官网给的值是{boundariesElement: 'body', gpuAcceleration: false },将这个加上问题就解决了.

  4. [转]Cross-type joins in Elasticsearch

    Cross-type joins in Elasticsearch http://rore.im/posts/elasticsearch-joins December 31, 2014 When mo ...

  5. 归并排序merge_sort

    将区间递归分解,直到区间只有2个元素,然后比较大小,排序,等递归回来的时候就将排序好的子区间再排序合并....一直排序合并,最后就排序完成了. (可以做范围大的逆序数的题) #include < ...

  6. Unity 思考问题的办法

    Unity 思考问题的办法 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...

  7. Java中的Arrays类使用详解

    首先先创建一个打印数组的方法,方便后面直接使用 public static void output(int []a) { for(int i=0;i<a.length;i++) { System ...

  8. 测试那些事儿—web测试方法之输入框

    一.字符型输入 (1)字符型输入框 英文全角,英文半角,数字,空或者空格,特殊字符“~!@#¥%.......&*?{}[]"特别要注意单引号和&符号.禁止直接输入特殊字符时 ...

  9. next_permutation(start,end)

    一道水题,简单的next_permutation用法,相同的还有prev_permutation 包含在头文件<algorithm>中 字符串 acab 含有两个a ,一个b ,一个c , ...

  10. 数据库设计画图工具powerdesigner

    powerdesigner 教程:http://jingyan.baidu.com/article/bea41d43684fa4b4c51be6cf.html