📅  最后修改于: 2023-12-03 15:40:38.405000             🧑  作者: Mango
正则表达式(Regular Expression)是一种用于匹配文本的模式,它由一系列字符和元字符组成。正则表达式在很多编程语言中得到广泛应用,可以用于字符串匹配、搜索、替换等操作。
正则表达式的语法由字符和元字符组成。字符可以是任何字符,例如字母、数字、空格等;元字符则是一些特殊字符,用于匹配一类特定的字符或位置。
以下是一些常用的元字符:
.
:匹配任意一个字符,但不包括换行符。*
:匹配前面的字符0次或多次。+
:匹配前面的字符1次或多次。?
:匹配前面的字符0次或1次。^
:匹配行或字符串的开头。$
:匹配行或字符串的结尾。import re
pattern = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'
text = 'My email address is john@example.com'
match = re.search(pattern, text)
if match:
print('Found:', match.group())
else:
print('Not found')
import re
pattern = r'<[^>]+>'
text = '<html><body><h1>Example</h1><p>This is an example.</p></body></html>'
tags = re.findall(pattern, text)
for tag in tags:
print(tag)
import re
pattern = r'\d{4}-\d{2}-\d{2}'
text = 'The date is 2021-01-01'
match = re.search(pattern, text)
if match:
print('Found:', match.group())
else:
print('Not found')
上下文无关语法(Context-Free Grammar)是一种用于描述自然语言、编程语言等语言结构的形式语法。它由一些产生式规则组成,每条规则由一个非终结符和一些终结符或非终结符的序列组成。
正则表达式可以看作是一种上下文无关语法的简化形式,它只能描述一类简单的语言结构。而上下文无关语法可以描述更加复杂的语言结构,因此在一些任务中,如语义分析、自然语言处理等,使用上下文无关语法更加有效。
正则表达式是一种用于匹配文本的模式,可以在多种编程语言中使用。正则表达式的语法由字符和元字符组成,元字符用于匹配特定的字符或位置。上下文无关语法是一种更加通用的形式语法,可以描述更加复杂的语言结构。