『Re』知识工程作业_主体识别

一个比较完备的正则表达式介绍

几个基础函数

compile(patternflags=0)

search ()等方法。

实际有两种使用方式:

  pattern.匹配方法(string) 或者 re.匹配方法(pattern,string)

使用或|来强化匹配规则:

pattern_t = re.compile(
'[0-9〇一二三四五六七八九]{4}年.{1,2}月.{1,3}日' '|同年.{1,2}月.{1,3}日' '|[0-9〇一二三四五六七八九]{4}年.{1,2}月.{1}旬' '|[0-9〇一二三四五六七八九]{4}年.{1,2}月底' '|[0-9〇一二三四五六七八九]{4}年.{1,2}月' '|[0-9〇一二三四五六七八九十]{1,2}月.{1,3}日')

 

findall(patternstringflags=0)

经典用法,切词操作,匹配长度大于1的全字母序列

re.findall(r'[a-zA-Z]{2,}',line.strip())

 很好用的一个表达式,返回汉字字符(list形式)

news = re.findall(r'[\u4e00-\u9fa5]',word)

 

finditer(patternstringflags=0)

迭代器符合

 

正则表达式迭代器对象

之所以单提出来,是因为迭代器在匹配组groups的时候真的好用,

pattern_c = re.compile('[\n。,,《;](.{,15}?人民法院)')
_court_list = [name.group(1) for name in pattern_c.finditer(lines)]

group(1)表示匹配到的符合第一组的部分,2、3……类推,而0表示包含全部匹配的各个组结果的元组。

 

贪婪匹配

比如正则表达式:

'审理(.+)指控'

我希望不去贪婪匹配,那么应该是

'审理(.+)指控?'

而非

'审理(.+?)指控'

 

相关文章:

  • 2021-11-04
  • 2021-11-22
  • 2022-02-22
  • 2021-09-24
  • 2022-01-22
猜你喜欢
  • 2022-12-23
  • 2021-07-29
  • 2022-03-08
  • 2022-12-23
  • 2021-11-13
  • 2021-06-30
  • 2021-07-22
相关资源
相似解决方案