Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中将变量设置为匹配的正则表达式_Python_Regex - Fatal编程技术网

在Python中将变量设置为匹配的正则表达式

在Python中将变量设置为匹配的正则表达式,python,regex,Python,Regex,我有一系列描述英语介词行为的特征,需要处理80000行,我试图描述介词“cross”的词性 samp = "across.p.cpa.312(2)c:l:whichc:pos:wdtc:ri:rulefired" print(re.search(sep + 'hr:pos:([a-z]+)' + sep, line)) <re.Match object; span=(6840, 6852), match='\x18hr:pos:nns\x18'&

我有一系列描述英语介词行为的特征,需要处理80000行,我试图描述介词“cross”的词性

    samp = "across.p.cpa.312(2)c:l:whichc:pos:wdtc:ri:rulefired"
    print(re.search(sep + 'hr:pos:([a-z]+)' + sep, line))
    <re.Match object; span=(6840, 6852), match='\x18hr:pos:nns\x18'>
samp=“cross.p.cpa.312(2)c:l:whichc:pos:wdtc:ri:rulefired”
打印(搜索(sep+‘hr:pos:([a-z]+)’+sep,行))

请注意“\x18”是该行的分隔符。在长度为15942的一行中有1333个这样的特征。但是,我如何得到一个变量的匹配,然后我可以做更多的分析。这在Perl中很容易做到,但Python似乎让它变得非常困难。

好的,我又开始了。如下设置m,然后将pos设置为第一组

  m = re.search(sep + 'hr:pos:([a-z]+)' + sep, line)
  pos = m.group(0)
  pos = '\x18hr:pos:nns\x18'
天哪,他们不容易找到如何做这件事。

search()
返回一个匹配对象。使用
group()
方法获取字符串中匹配的部分
group(0)
返回整个匹配,
group(1)
返回正则表达式中的第一个组。也可以使用索引

m = re.search(sep + 'hr:pos:([a-z]+)' + sep, line)
这些将返回整个比赛:

m.group(0)
m[0]
它们返回匹配中的第一组(示例中为“nns”):


“如何获得与变量的匹配”见下文。我希望这能回答你的问题,这听起来很糟糕。这能回答你的问题吗?这是一个很好的观点,因为我不想在搜索中加括号。事实上,我的意图最终只是对介词后面的不同词类进行进一步的分析。例如“复数名词”(nns)或“单一专有名词”(nnp)。谢谢你。
m.group[1]
m[1]