当前位置:   article > 正文

NLP-正则表达式 Regular Expressions_nlp正则表达式

nlp正则表达式

用实现定义好的字符串组成“规则字符串”,对文本进行过滤

1. Basic Patterns:

search() 返回object,且是找到的第一个例子

  1. import re
  2. text='Today is a nice day, and today is Monday.'
  3. pattern='today'
  4. match=re.search(pattern,text) #search()返回一个object
<re.Match object; span=(56, 62), match='London'>

findall() 找到所有符合对象,返回str

finditer() 返回object

  1. for match in re.finditer(pattern,text):
  2. print(match) #return object
  3. print(match.span()) #return index

group() 返回actual text that matched

2. Simple Patterns:

[] Disjunction 

pattern='[Tt]oday' #Today or today
[A-Z]an upper case letter
[a-z]an lower case letter
[0-9]a single digit
[b-g]b,c,d,e,f or g

^ NOT 和 $

注:^主要有两个用处

a) 在[]开头表示否定(注意要在[]里面)

pattern='[^a-z]' #非小写的所有字符串

b) match the start of the line

  1. text='Today is happy day. Today is Monday.'
  2. pattern1='^The' # Start of Line match
  3. pattern2='Monday$' # End of Line match
  4. re.findall(pattern1,text) #return 第一个Today
  5. re.findall(pattern2,text) #return Monday

?Question mark

  1. # match one or zero optional character
  2. text='apple and apples'
  3. pattern='apples?' #?是跟着前面的char的
  4. re.findall(pattern,text) #return 'apple' and 'apples' ?是跟着前面的char的

* Kleene

  1. # match zero or many optional characters
  2. text='b and baaaa and ba'
  3. pattern='ba*' #*跟着前面的char,所以表示没有a或者后面很多重复a
  4. re.findall(pattern,text) #return 'b' 'baaaa' 'ba'

+ Kleene

  1. # match one or many optional characters
  2. text='b and baaaa and ba'
  3. pattern='ba*' #*跟着前面的char,所以表示有一个a或者后面很多重复a
  4. re.findall(pattern,text) #return 'baaaa' 'ba'

. Wild Card

  1. # matches any single character
  2. text = 'care and core'
  3. pattern= 'c.re'
  4. re.findall(pattern,text) #return 'care' 和'core'

| OR 

  1. re.search('apple|orange','I like apple')
  2. re.search('cat(fish|nap|claw)','I like catfish and catnap')

\b 

  1. text='the and other'
  2. pattern=r'\bthe\b' # Word Boundary
  3. re.findall(pattern,text) #只返回the

3. Identifiers for Characters

\d数字
\w字母/数字
\s空格
\D非数字
\W非字母数字,即符号
\S非空格

对于一些重复出现的字符,有特殊量词指代符号

+出现一次或更多
{3}出现正好3次
{2,4}出现2-4次
{3, }出现3次或更多
\*出现0次或更多
?出现0次或者1次
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号