lua的string庫和正則表示式
一.前提要了解一下lua 的string幾個方法
1. string庫中所有的字元索引從前往後是1,2,...;從後往前是-1,-2,...
2. string庫中所有的function都不會直接操作字串,而是返回一個結果
string.len(s):返回字串的長度.
string.lower(s):變小寫.
string.upper(s):變大寫.
string.rep(s,n):將s拷貝n份,並連線起來,返回.
string.sub(s,i [,j]):取s中從i開始到j為止的自字串.預設j為長度.-i表示倒數.
1.string.find(s, pattern, pos)
第1個引數:源字串
第2個引數:待搜尋之模式串
第3個引數:A hint, 從pos位置開始搜尋
找到匹配返回:匹配串開始和結束的位置,否則返回nil
2.string.gsub(s, pattern, reps) string.gsub(s, pattern, func)
第1個引數:源字串
第2個引數:待替換之模式串
第3個引數:替換為reps
返回 結果串+匹配數
gsub也可以用拷貝捕獲技巧
print(string.gsub("hello, world", "(o)", "%1-%1")) <== hello-o, wo-orld 2
print(string.gsub("hello Lua", "(.)(.)", "%2%1")) <== ehll ouLa 4
function trim (s) return (string.gsub(s, "^%s*(.-)%s*$", "%1")) end <== 注意匹配數用括號丟棄
string.gsub(s, pattern, func)
第3個引數:自定義函式,對找到的匹配操作,並傳出替換值
s, n = string.gsub("hello world", "l+", function(s) return "xxx" end)----> l+一個或多個l ,所以替換了 ll 和 l 返回為2
print(s, n) <== hexxxo worxxxd 2
3.string.gfind
返回一個迭代器,迭代器每執行一次,返回下一個匹配串;
iter = string.gfind("a=b c=d", "[^%s+]=[^%s+]")
print(iter()) <== a=b
print(iter()) <== c=d
通常用於泛性for迴圈,下面的例子結果同上
for s in string.gfind("a=b c=d", "[^%s+]=[^%s+]") do
print(s)
end
4.下面的表列出了Lua支援的所有字元類
. 任意字元
%a 字母
%c 控制字元
%d 數字
%l 小寫字母
%p 標點字元
%s 空白符
%u 大寫字母
%w 字母和數字
%x 十六進位制數字
%z 代表0的字元
上面字元類的大寫形式表示小寫所代表的集合的補集。例如, '%A'非字母的字元:
模式串中的特殊字元
( ) . % + - * ? [ ^ $
'%' 用作特殊字元的轉義字元
'%.' 匹配點;
'%%' 匹配字元 '%'。
轉義字元 '%'不僅可以用來轉義特殊字元,還可以用於所有的非字母的字元。當對一個字元有疑問的時候,為安全起見請使用轉義字元轉義他。
用'[]'建立字符集
'[%w_]' 匹配字母數字和下劃線
'[01]' 匹配二進位制數字
'[%[%]]'匹配一對方括號
在'[]'中使用連字元'-'
'%d' 表示 '[0-9]';
'%x' 表示 '[0-9a-fA-F]'
'[0-7]' 表示 '[01234567]'
在'[]'開始處使用 '^' 表示其補集:
'[^0-7]' 匹配任何不是八進位制數字的字元;
'[^\n]' 匹配任何非換行符戶的字元。
'[^%s]' == '%S'
模式修飾符
+ 匹配前一字元1次或多次
* 匹配前一字元0次或多次;最長匹配
- 匹配前一字元0次或多次;最短匹配
? 匹配前一字元0次或1次
^ 匹配字串開頭
$ 匹配字串結尾
參考資料:
相關推薦
利用Requests庫和正則表示式爬取豆瓣影評Top250
說明 最近看了下爬蟲基礎,想寫個部落格來記錄一下,一來是可以方便和我一樣剛入門的小白來參考學習,二來也當做自己的筆記供自己以後查閱。 本文章是利用python3.6和Requests庫(需自行安裝,cmd裡執行pip install r
lua的string庫和正則表示式
一.前提要了解一下lua 的string幾個方法 1. string庫中所有的字元索引從前往後是1,2,...;從後往前是-1,-2,... 2. string庫中所有的function都不會直接操作字串,而是返回一個結果 string.len(s):返回字串的長度
python爬蟲學習實踐(一):requests庫和正則表示式之淘寶爬蟲實戰
使用requests庫是需要安裝的,requests庫相比urllib 庫來說更高階方便一點,同時與scrapy相比較還是不夠強大,本文主要介紹利用requests庫和正則表示式完成一項簡單的爬蟲小專案----淘寶商品爬蟲。有關於更多requests庫的使用方法請參考:官方文件第一步:我們先開啟淘寶網頁然後搜
python的OS庫和正則表達式庫
特殊字符 see lena 字符串表 find 移動 沒有 忽略 eva 摘自:http://blog.chinaunix.net/uid-16360955-id-3351990.html 作留存學習 1.常用內置函數:(不用import就可以直接使用) hel
用Requests和正則表示式爬取豆瓣圖書TOP250
思路和上文大同小異。 import requests from requests.exceptions import RequestException import re import json headers = {'User-Agent':'Mozilla/5.0(Macinto
用Requests和正則表示式爬取貓眼電影(TOP100+最受期待榜)
目標站點分析 目標站點(貓眼榜單TOP100): 如下圖,貓眼電影的翻頁offset明顯在URL中,所以只要搞定第一頁的內容加上一個迴圈加上offset就可以爬取前100。 流程框架 1、抓取單頁內容 利用requests請求目標站點,得到單個網頁HTML程式碼,返回結
Python 利用BeautifulSoup和正則表示式 來爬取旅遊網資料
import re import requests import time from bs4 import BeautifulSoup url = ‘http://www.cntour.cn/’ r = requests.get(url) print(r.encoding,len(r.t
Boundary Extractor和正則表示式提取器
一、Boundary Extractor 這是在jmeter4.0版本的後置處理器中增加的一個新元件,功能強大,使用方便; 有了它,可以完美替代正則表示式提取器和JSON Extractor等。
MySQL UNION、排序、分組、連線、NULL值處理和正則表示式
UNION SQL UNION 下面的SQL語句從product和orderdetail表中選取所有不同的pCode(只有不同值) SELECT pCode FROM product UNION SELECT pCode FROM orderdetail ORDER BY p
LINUX學習—grep和正則表示式(LINUX三劍客)
grep, egrep, fgrep grep(GLOBAL RESEARCH) 是一種強大的文字搜尋工具,它能使用正則表示式搜尋文字,並把匹配的行打印出來。根據模式,搜尋文字,並將符合模式的文字行顯示出來。只能使用基本正則表示式 要使用擴充套件正則表示式需要-E pattern
Python庫-re(正則表示式)
re庫是python的一個標準庫,不需要自己用pip額外下載,直接呼叫即可。 下面介紹以下庫中函式的作用。 1.re.compile(patter, flags=0) patter是一個正則表示式字串,例如"[0-9]+",該函式返回一個模式物件(patter object),str型別 2
python爬蟲的re庫(正則表示式匹配)
re庫是python中自帶的一個庫,不需要外部匯入。 它主要是支援正則表示式匹配。 下面來說一下其主要功能函式: 函式 說明 re.search() 在一個字串中搜索匹配正則表示式的第
python筆記 7-8 程序池 程序通訊 迭代器 訊息佇列 Queue 協程 和正則表示式
day7 程序 程序池 程序通訊 迭代器 訊息佇列 Queue 作用 用於多個程序間的通訊 操作put放入訊息(值) put_nowait() 放入值,不等待 如果隊滿,則報錯 get獲取訊息(值) get_nowait() 獲取值,不等待 如果隊空,則報錯 判斷 f
Linux中的萬用字元和正則表示式
在linux中,有萬用字元和正則表示式,這是兩個不同的概念 萬用字元:它是由shell解析,並且一般用於匹配檔名。如:ls 正則表示式:是一個字元匹配標準,可以匹配文字中的內容 一些命令工具按此標準實現字元匹配,常用於支援正則表示式的工具,如grep,sed等。一般用於匹配檔案中的內
Zookeeper和正則表示式
NGINX 1.反向代理 2.負載均衡 3.http伺服器(包含動靜分離) 4.正向代理 高併發流量的控制 1.快取 
MySQL UNION、排序、分組、連線、NULL值處理和正則表示式
UNION SQL UNION 下面的SQL語句從product和orderdetail表中選取所有不同的pCode(只有不同值) SELECT pCode FROM product UNION SEL
python re庫(正則表示式)入門
正則表示式(英文名稱:regular expression,regex,RE)是用來簡潔表達一組字串特徵的表示式。最主要應用在字串匹配中。 \d 數字:[0-9] \D 非數字: [^0-9] \s 空白字元:[ \t\n\x0B\f\r] \S 非空白字元:[^\s] \w 單詞字
Scala 檔案和正則表示式
1. 讀取行 import scala.io.Source object FileSyllabus { def main(args: Array[String]): Unit = { //檔案讀取  
【JavaScrpit】字串和正則表示式的4個相關方法
字串和正則表示式的4個方法:split( ); search( ); match( ); replace( ); 下面介紹4個方法的各自作用: split( ); : 可以將一個字串拆分為
如何使用 awk 和正則表示式過濾文字或檔案中的字串
當我們在 Unix/Linux 下使用特定的命令從字串或檔案中讀取或編輯文字時,我們經常需要過濾輸出以得到感興趣的部分。這時正則表示式就派上用場了。 什麼是正則表示式? 正則表示式可以定義為代表若干個字元序列的字串。它最重要的功能之一就是它允許你過濾一條命令或一個檔案的輸出