js正則匹配

2021-06-29 02:53:01 字數 2375 閱讀 8307

與大多數程式語言相同,正規表示式裡使用"\"作為轉義字元,這就可能造成反斜槓困擾。

假如你需要匹配文字中的字元"\",那麼使用程式語言表示的正規表示式裡將需要4個反斜槓"\\\\":

第乙個和第三個用於在程式語言裡將第二個和第四個轉義成反斜槓,

轉換成兩個反斜槓\\後再在正規表示式裡轉義成乙個反斜槓用來匹配反斜槓\。

這樣顯然是非常麻煩的。

python裡的原生字串很好地解決了這個問題,這個例子中的正規表示式可以使用r"\\"表示。

同樣,匹配乙個數字的"\\d"可以寫成r"\d"。

1.2.split

split(string[, maxsplit]) | re.split(pattern, string[, maxsplit]):

按照能夠匹配的子串將string分割後返回列表。

maxsplit用於指定最大分割次數,不指定將全部分割。

[python]view plain

copy

import

re  

p = re.compile(r'\d+'

)  print

p.split(

'one1two2three3four4'

)  ### output ###

# ['one', 'two', 'three', 'four', '']

1.3.findall

findall(string[, pos[, endpos]]) | re.findall(pattern, string[, flags]):

搜尋string,以列表形式返回全部能匹配的子串。

[python]view plain

copy

import

re  

p = re.compile(r'\d+'

)  print

p.findall(

'one1two2three3four4'

)  ### output ###

# ['1', '2', '3', '4']

1.4.finditer

finditer(string[, pos[, endpos]]) | re.finditer(pattern, string[, flags]):

搜尋string,返回乙個順序訪問每乙個匹配結果(match物件)的迭代器。

[html]view plain

copy

import re  p= 

re.compile(r'\d+')  

for m in p.finditer('one1two2three3four4'):  

print m.group(),  

### output ###  

# 1 2 3 4  

1.5.sub

sub(repl, string[, count]) | re.sub(pattern, repl, string[, count]):

使用repl替換string中每乙個匹配的子串後返回替換後的字串。 

當repl是乙個字串時,可以使用\id或\g、\g引用分組,但不能使用編號0。 

當repl是乙個方法時,這個方法應當只接受乙個引數(match物件),並返回乙個字串用於替換(返回的字串中不能再引用分組)。 

count用於指定最多替換次數,不指定時全部替換。

[python]view plain

copy

import

re  

p = re.compile(r'(\w+) (\w+)'

)  s = 'i say, hello world!'

print

p.sub(r

'\2 \1'

, s)  

deffunc(m):  

return

m.group(

1).title() + 

' '+ m.group(

2).title()  

print

p.sub(func, s)  

### output ###

# say i, world hello!

# i say, hello world!

js 正則匹配

isnumber 是否為數字 regexps.isnumber d d isint 是否為整形 regexps.isint d istime 是否為時間格式 regexps.istime d d d s d d d isdate 是否為日期格式 regexps.isdate d d d isemai...

js正則匹配

var childnodename childnodename val 自定義name只能輸入數字 字母或漢字 if childnodename var regex1 a za z a za z0 9 字母數字,字母開頭 var regex3 a za z0 9 字母數字下劃線 var regex4...

js正則匹配

1.js正則的定義 兩種寫法 var hanzi new regexp u4e00 u9fa5 漢字 var dianhua 1 d 手機號 2.js正則的使用 1 使用 new regexp test 比如驗證漢字,那就是 hanzi.test 內容 例如 寫法結果 hanzi.test 你好 t...