2 u013616119 u013616119 于 2016.02.01 12:54 提问

python正则表达式匹配

我想匹配文件中所有 (NN 单词) (NN 单词),示例程序如下:

import re
pattern2 = re.compile('(NN [a-z]+)')
it = re.finditer(pattern2, '(NN computer) (NN database)')
for match in it:
print match.group()

此程序可以找到(NN computer)、(NN database)这两个匹配。

可如果换成pattern2 = re.compile('(NN [a-z]+) (NN [a-z]+)'),就无法匹配(NN computer) (NN database)。这是为什么?

1个回答

oyljerry
oyljerry   Ds   Rxr 2016.02.01 14:40

括号转义一下

 \(NN [a-z]+\) \(NN [a-z]+\)
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Python中正则表达式的匹配规则
下面是Python中正则表达式的一些匹配规则,图片资料来自CSDN:
Python正则表达式匹配各种标准形式整理
正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r
剑指offer:正则表达式匹配
题目描述请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配class Solution { public: bool match(char* str,
《剑指offer》-正则表达式匹配
题目描述 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配 解法: 1.首先考虑第一个字符和模式字符匹配的条件,会有两种情况,ch =
python正则表达式与文本匹配
python很强大 python的正则表达式很好用 这篇文章就写写怎么用python的正则表达式来匹配txt文本中的字符吧 首先,要知道自己匹配的字符串是什么形式的,然后根据自己的字符串形式来写出对应的正则表达式 例如这次,我需要匹配的是数字加逗号加数字的字符串形式 所以我的正则表达式的形式如下 rule_name = r'\b(\d*,+\d+)\s'compile_
Python中正则表达式多行匹配的方法
根据网上搜寻的答案,反复尝试,终于找到了多行匹配的方法,我只用单行然后详细解释,基础语法省略掉。 想弄明白多行匹配的初衷是因为想取的数值是变参,并且单行无其他可以参考可以获取的没有特点的文本。 target_character = re.findall(r"出球顺序.*.\n.*.\n.*",res_str,re.M) 逐字解释可能比较容易理解:【内部是解释】 目标_字符=正则库.取匹配到
python正则表达式基础——匹配0-100的数
使用正则表达式进行匹配,匹配出1-100的数。不包含(01、02、001等数)。引入re模块,使用match方法进行匹配,并设计正则表达式进行匹配。 代码如下:>>> import re >>> re.match(r"[1-9]?\d?$|100$", "100") <_sre.SRE_Match object; span=(0, 3), match='100'>r表示原始字符; [1-9]?
Python 正则表达式匹配字符串中的http链接
利用Python正则表达式匹配字符串中的http链接。主要难点是用正则表示出http 链接的模式。import re pattern = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+') # 匹配模式string = 'Its after 12 noon,
Python正则表达式的几种匹配用法
下面列出Python正则表达式的几种匹配用法: 1.测试正则表达式是否匹配字符串的全部或部分regex=ur"" #正则表达式 if re.search(regex, subject):     do_something() else:     do_anotherthing()  2.测试正则表达式是否匹配整个字符串 regex=ur"
Python-正则表达式多次匹配
要点要查找所有匹配项,用findall函数。