Python正则表达式在使用中会经常应用到字符串替换的代码。有很多人都不知道如何解决这个问题,下面的代码就告诉你其实这个问题无比的简单,希望你有所收获。
1.替换所有匹配的子串用newstring替换subject中所有与正则表达式regex匹配的子串
1 2 3 4 5 6 7 |
<ol class="dp-xml" style="margin-left:55px;color:#5C5C5C;background-color:#F7F7F7;"> <li class="alt" style="color:inherit;background-color:transparent;"> <span style="color:black;background-color:inherit;"><span style="background-color:inherit;">result, </span><span class="attribute" style="color:red;background-color:inherit;">number</span><span style="background-color:inherit;"> = </span><span class="attribute-value" style="color:blue;background-color:inherit;">re</span><span style="background-color:inherit;">.subn(regex, newstring, subject) </span></span> </li> </ol> |
2.替换所有匹配的子串(使 用正则表达式对象)
1 2 3 4 5 6 7 8 9 10 11 |
<ol class="dp-xml" style="margin-left:55px;color:#5C5C5C;background-color:#F7F7F7;"> <li class="alt" style="color:inherit;background-color:transparent;"> <span style="color:black;background-color:inherit;"><span class="attribute-value" style="color:blue;background-color:inherit;">re</span><span class="attribute" style="color:red;background-color:inherit;">reobj</span><span style="background-color:inherit;"> = re.compile(regex) </span></span> </li> <li style="background-color:transparent;"> <span style="color:black;background-color:inherit;">result, </span><span class="attribute" style="color:red;background-color:inherit;">number</span><span style="color:black;background-color:inherit;"> = </span><span class="attribute-value" style="color:blue;background-color:inherit;">reobj</span><span style="color:black;background-color:inherit;">.subn(newstring, subject)字符串拆分 </span> </li> </ol> |
Python字符串拆分
1 2 3 4 5 6 7 |
<ol class="dp-xml" style="margin-left:55px;color:#5C5C5C;background-color:#F7F7F7;"> <li class="alt" style="color:inherit;background-color:transparent;"> <span style="color:black;background-color:inherit;"><span class="attribute-value" style="color:blue;background-color:inherit;">re</span><span class="attribute" style="color:red;background-color:inherit;">result</span><span style="background-color:inherit;"> = re.split(regex, subject) </span></span> </li> </ol> |
字符串拆分(使用正则表示式对象)
1 2 3 4 5 6 7 8 9 10 11 |
<ol class="dp-xml" style="margin-left:55px;color:#5C5C5C;background-color:#F7F7F7;"> <li class="alt" style="color:inherit;background-color:transparent;"> <span style="color:black;background-color:inherit;"><span class="attribute-value" style="color:blue;background-color:inherit;">re</span><span class="attribute" style="color:red;background-color:inherit;">reobj</span><span style="background-color:inherit;"> = re.compile(regex) </span></span> </li> <li style="background-color:transparent;"> <span class="attribute" style="color:red;background-color:inherit;">result</span><span style="color:black;background-color:inherit;"> = </span><span class="attribute-value" style="color:blue;background-color:inherit;">reobj</span><span style="color:black;background-color:inherit;">.split(subject)匹配 </span> </li> </ol> |
下面列出Python正则表达式的几种匹配用法:
1.测试正则表达式是否 匹配字符串的全部或部分regex=ur”…” #正则表达式
1 2 3 4 5 6 7 8 9 10 11 |
<ol class="dp-xml" style="margin-left:55px;color:#5C5C5C;background-color:#F7F7F7;"> <li class="alt" style="color:inherit;background-color:transparent;"> <span style="color:black;background-color:inherit;">if re.search(regex, subject): </span> </li> <li style="background-color:transparent;"> <span style="color:black;background-color:inherit;">do_something() </span> </li> </ol> |
else:do_anotherthing()2.测试正则表达式是否匹配整个字符串regex=ur”…\Z” #正则表达式末尾以\Z结束
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<ol class="dp-xml" style="margin-left:55px;color:#5C5C5C;background-color:#F7F7F7;"> <li class="alt" style="color:inherit;background-color:transparent;"> <span style="color:black;background-color:inherit;">if re.match(regex, subject): </span> </li> <li style="background-color:transparent;"> <span style="color:black;background-color:inherit;">do_something() </span> </li> <li class="alt" style="color:inherit;background-color:transparent;"> <span style="color:black;background-color:inherit;">else: </span> </li> <li style="background-color:transparent;"> <span style="color:black;background-color:inherit;">do_anotherthing() </span> </li> </ol> |
3. 创建一个匹配对象,然后通过该对象获得匹配细节regex=ur”…” #正则表达式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<ol class="dp-xml" style="margin-left:55px;color:#5C5C5C;background-color:#F7F7F7;"> <li class="alt" style="color:inherit;background-color:transparent;"> <span style="color:black;background-color:inherit;"><span class="attribute" style="color:red;background-color:inherit;">match</span><span style="background-color:inherit;"> = </span><span class="attribute-value" style="color:blue;background-color:inherit;">re</span><span style="background-color:inherit;">.search(regex, subject) </span></span> </li> <li style="background-color:transparent;"> <span style="color:black;background-color:inherit;">if match: </span> </li> <li class="alt" style="color:inherit;background-color:transparent;"> <span style="color:black;background-color:inherit;"># match start: match.start() </span> </li> <li style="background-color:transparent;"> <span style="color:black;background-color:inherit;"># match end (exclusive): match.end() </span> </li> <li class="alt" style="color:inherit;background-color:transparent;"> <span style="color:black;background-color:inherit;"># matched text: match.group() </span> </li> <li style="background-color:transparent;"> <span style="color:black;background-color:inherit;">do_something() </span> </li> <li class="alt" style="color:inherit;background-color:transparent;"> <span style="color:black;background-color:inherit;">else: </span> </li> <li style="background-color:transparent;"> <span style="color:black;background-color:inherit;">do_anotherthing() </span> </li> </ol> |
以上就是对Python正则表达式在字符串替换中的具体介绍。