python字符串解析_Python-字符串解析-正則-re

正則表達式

特殊字符序列,匹配檢索和替換文本

普通字符 +?特殊字符 +?數量,普通字符用來定邊界

更改字符思路

字符串函數 >?正則 >?for循環

元字符  匹配一個字符

#?元字符大寫,一般都是取小寫的反

1. 0~9?整數          \d      取反  \D

import re

example_str = "Beautiful is better than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r"\d", example_str))

print(re.findall(r"\D", example_str))

2.?字母、數字、下劃線    ? ?\w      取反  \W

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘\w‘, example_str))

print(re.findall(r‘\W‘, example_str))

3.?空白字符(空格、\t、\t、\n)  ?\s      取反  \S

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘\s‘, example_str))

print(re.findall(r‘\S‘, example_str))

4.?字符集中出現任意一個    []    0-9 a-z A-Z  取反  [^]

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘[0-9]‘, example_str))

print(re.findall(r‘[^0-9]‘, example_str))

5.?除 \n?之外任意字符

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r".", example_str))

數量詞  指定前面一個字符出現次數

1. 貪婪和非貪婪

a. 默認情況下是貪婪匹配,盡可能最大匹配直至某個字符不滿足條件才會停止(最大滿足匹配)

b. 非貪婪匹配, 在數量詞后面加上 ? ,最小滿足匹配

c. 貪婪和非貪婪的使用,是程序引起bug重大原因

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘.*u‘, example_str))

print(re.findall(r‘.*?u‘, example_str))

2.?重復指定次數        {n} {n, m}

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘\d{3}‘, example_str))

3.?0次和無限多次       ? *

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘.*‘, example_str))

4.?1次和無限多次         +

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘\d+‘, example_str))

5.?0次或1次          ? ??     使用思路: 去重

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘7896?‘, example_str))

邊界匹配

1. 從字符串開頭匹配 ^

2. 從字符串結尾匹配 $

正則表達式或關系    |

滿足 |?左邊或者右邊的正則表達式

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘\d+|\w+‘, example_str))

() 括號內的正則表達式當作單個字符,并且返回()內正則匹配的內容,可以多個,與關系

Python-正則相關模塊-re

1.?從字符中找到匹配正則的字符 findall()

import re

name = "Hello Python 3.7, 123456789"

total = re.findall(r"\d+", name)

print(total)

2.?替換正則匹配者字符串 sub()

import re

def replace(value):

return str(int(value.group()) + 1)

result_str = re.sub(r"\d", replace, name, 0)

print(result_str)

匹配一個中文字符???[\u4E00-\u9FA5]

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397689.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397689.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397689.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

algorithm -- 選擇排序

選擇排序是《導論》第一章課后習題,仿照插入排序,再次運用循環不變式來證明下算法的正確性,C 源碼: // 交換函數 void swap( int& a, int& b ) {a a^b;b a^b;a a^b; } void selectSort( int *arr, int count ) {if( a…

OD 完美走位

題目描述: 在第一人稱射擊游戲中,玩家通過鍵盤的A、S、D、W四個按鍵控制游戲人物分別向左、向后、向右、向前進行移動,從而完成走位。假設玩家每按動一次鍵盤,游戲人物會向某個方向移動一步,如果玩家在操作一定次數的鍵…

layui upload 后臺獲取不到值

后臺獲取不到值方法一&#xff1a; <script>layui.use(upload, function () {var upload layui.upload;//執行實例var uploadInst upload.render({elem: #test1 //綁定元素, url: /Home/UploadFiles //上傳接口, field: "fileNames" //添加這個屬性與后臺…

ueeditor無法上傳圖片_百度ue文本編輯器開發中無法上傳圖片

第一次發文&#xff0c;好緊張呀&#xff0c;不知道會不會沒人看。之前用ue遇到了一些坑&#xff0c;沒人看就當自己記錄了筆記。第一次用&#xff0c;總是會遇到問題&#xff0c;可以先查看下百度ue的演示http://ueditor.baidu.com/website/onlinedemo.html和API http://fex.b…

SQL 語句優化--IN語句優化案例

為什么80%的碼農都做不了架構師&#xff1f;>>> 今天客戶系統升級&#xff0c;通過DMVs性能分析查了一下&#xff0c;升級后發現一個語句執行時間比較長&#xff0c;執行語句要好幾秒鐘&#xff0c;調出語句如下&#xff1a; select distinct field003 from ufi2j0…

Activity跳轉

本例中MainActivity為&#xff1a;FirstActivity.java FirstActivity如下&#xff1a; package com.wyl.intentmultiactivitytest;import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.Vie…

Java課程設計---項目數據庫設計(含實體類)

1、數據庫分析設計 將數據庫命名為&#xff1a;db_student 分析系統中各角色之間的關系 2、表設計 &#xff08;1&#xff09;新建表tb_student&#xff08;學生表&#xff09; &#xff08;2&#xff09;新建表tb_admin&#xff08;管理員表&#xff09; &#xff08;3&#x…

java)_Java NIO系列教程(一) Java NIO 概述

原文鏈接 作者&#xff1a;Jakob Jenkov 譯者&#xff1a;airu 校對&#xff1a;丁一Java NIO 由以下幾個核心部分組成&#xff1a;ChannelsBuffersSelectors雖然Java NIO 中除此之外還有很多類和組件&#xff0c;但在我看來&#xff0c;Channel&#xff0c;Buffer…

本地讀取服務器Xml文件及本地讀本地的xml

updateUrl"ServerUrl"(服務器路徑) WebClient wc new WebClient(); Stream stream wc.OpenRead(updateUrl); XmlDocument xmlDoc new XmlDocument(); xmlDoc.Load(stream); XmlNode list xmlDoc.SelectSingleNode("Update"); foreach (XmlNode node in…

Context.getExternalFilesDir()和Context.getExternalCacheDir()方法

2019獨角獸企業重金招聘Python工程師標準>>> Context.getExternalCacheDir()方法可以獲取到 SDCard/Android/data/你的應用包名/cache/目錄&#xff0c;一般存放臨時緩存數據如果使用上面的方法&#xff0c;當你的應用在被用戶卸載后&#xff0c;SDCard/Android/dat…

java 靜態代碼塊_JAVA靜態代碼塊

今天遇到下面的代碼&#xff0c;感覺很奇怪&#xff0c;特意記錄下&#xff1a;代碼如下&#xff1a;public class Test {private static List objs new ArrayList();static {objs.add(new Test(Test.S_NAME,Test.NAME,Test.COUNT));objs.add(new Test(Test.S_NAME,Test.NAME,…

context詳解

1、Context概念&#xff1a; Context&#xff0c;相信不管是第一天開發Android&#xff0c;還是開發Android的各種老鳥&#xff0c;對于Context的使用一定不陌生~~你在加載資源、啟動一個新的Activity、獲取系統服務、獲取內部文件&#xff08;夾&#xff09;路徑、創建View操作…

Unity Camera的兩種模式

http://www.cnblogs.com/zhaoqingqing/p/3302484.html

mysql之group_concat函數

mysql之group_concat函數 在介紹GROUP_CONCAT之前&#xff0c;我們先來看看concat()函數和concat_ws()函數。 先準備一個測試數據庫&#xff1a; mysql> select * from scores; --------------------- | id | name | score | --------------------- | 1 | zhangsan | 1…

java 圖片批量上傳_java實現批量上傳圖片,還要保證每個圖片的順序號,疑問求教!...

rt我要一次性同時上傳n張照片&#xff0c;并且每張照片的順序號還不一樣&#xff0c;第一張的serialno是1&#xff0c;第二張是2。。一開始我做單張圖片上傳&#xff0c;代碼如下RequestMapping("/picUpLoad")ResponseBodypublic Map picUpLoad(MultipartFile file, …

linux 用戶創建、管理、權限分配

&#xff08;1&#xff09;su與sudo su:通過su可以在用戶之間切換&#xff0c;如果超級權限用戶root向普通或虛擬用戶切換不需要密碼&#xff0c;什么是權力&#xff1f;這就是&#xff01;而普通用戶切換到其它任何用戶都需要密碼驗證&#xff1b; sudo: sudo扮演的角色注定了…

WebApi路由

路由分為兩種模式&#xff1a;模板路由和特性路由。 模板路由&#xff1a; 模板路由是ASP.NET Web API默認提供的路由。模板路由使用前需要定義路由模板。如下面默認的路由模板&#xff1a; 默認路由的URL格式是api/{controller}/{id}。api代表在資源前面要帶上api目錄&#xf…

HW--漂亮度2(測試通過)

總結&#xff1a;幾個函數的使用 &#xff08;1&#xff09; int numInteger.parseInt(str[0]); //將第一個字符串轉成整形數&#xff0c;表示名字個數 &#xff08;2&#xff09; String string1str[i].toLowerCase(); //變小寫都 &#xff08;3&#xff09; char ch[]strin…

java設計模式 組合_JAVA 設計模式 組合模式

用途組合模式 (Component)將對象組合成樹形結構以表示“部分-整體”的層次結構。組合模式使得用戶對單個對象和組合對象的使用具有唯一性。組合模式是一種結構型模式。結構圖-組合模式結構圖Component: 組合中的對象聲明接口&#xff0c;在適當的情況下&#xff0c;實現所有類共…

項目總結SpringMVC相關

流程文字概述1、用戶發送請求至前端控制器DispatcherServlet2、DispatcherServlet收到請求調用HandlerMapping處理器映射器。3、處理器映射器找到具體的處理器&#xff0c;生成處理器對象及處理器攔截器(如果有則生成)一并返回給DispatcherServlet。4、DispatcherServlet調用Ha…