基于正则表达式的词行词法分析|自然语言处理

Posted 桃陉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于正则表达式的词行词法分析|自然语言处理相关的知识,希望对你有一定的参考价值。


1.任务一:邮箱地址和网址提取

1.1任务描述

∙ \\bullet 实现基于正则表达式的字符串抽取,完成对 string文本的邮箱地址和网址,并按下面格式输出。

测 试 输 入 {\\color{Violet}测试输入}

(1)我的邮箱:nlp@nudt.com
(2)please click https://www.educoder.net

测 试 输 出 {\\color{Violet}测试输出}

(1)提取邮箱地址如下:
nlp@nudt.com
(2)提取网址如下:
https://www.educoder.net

1.2代码

import re
string =input()

#分别生成对应正则表达式对象
regex1 = re.compile(r'\\w+@\\w+.\\w+')
regex2 = re.compile(r'ht{2}ps://w{3}.\\w+.\\w+')

res = regex1.findall(string)
if len(res):
    print('提取邮箱地址如下:')
for i in res:
    print(i)

res1 = regex2.findall(string)
if len(res1):
    print('提取网址如下:')
for i in res1:
    print(i)

2.任务二:密码提取

2.1任务描述

∙ \\bullet 实现基于正则表达式的字符串抽取,完成对 string文本的密码提取,并按下面格式输出。

测 试 输 入 {\\color{Violet}测试输入}

密码是:NUDT_NLP2021

测 试 输 出 {\\color{Violet}测试输出}

提取密码是
NUDT_NLP2021

2.2代码

import re
string =input()

#提取密码代码,密码中包含字母、数字、下划线
print("提取密码是")
p = re.compile('[a-z]|[A-Z]|_|\\d')
t = re.findall(p,string)
if t:
    for i in t:
        print(i,end="")

以上是关于基于正则表达式的词行词法分析|自然语言处理的主要内容,如果未能解决你的问题,请参考以下文章

编译原理笔记 1

实现词法分析器时的 DFA 与正则表达式?

使用正则表达式库在 C++ 中创建词法分析器?

编译原理-第三章 词法分析-3.7 从正则表达式到自动机-从正则表达式构造NFA

词法分析器:通过有限自动机实现正则表达式?

编译原理笔记--词法分析