【发布时间】:2018-09-05 10:17:54
【问题描述】:
原始文本:
(NP(DT a)(JJ小)(NN奇迹))
text1:
(1-NP (2-DT 3-a) (4-JJ 5-小) (6-NN 7-奇迹))**
文本2:
(1-NP (2-DT>1 3-a) (4-JJ>1 5-small) (6-NN>1 7-miracle))**
我想把 text1 变成 text2。这样做的目的是使用 >1 来表示数字 2,4 和 6 的父级是数字 1。
我想出了:
line = '(1-NP (2-DT 3-a) (4-JJ 5-small) (6-NN 7-miracle))'
q = re.search(r'^\(([0-9]{1,2})\-NP',line) # capture the parent number
i = re.sub(r'( \([^ ]+\b )',r'\1' + q.group(1) ,line) # using the captured number in re.sub
print(str(i))
运行代码后我收到错误消息:
raise error, "invalid group reference"
sre_constants.error: invalid group reference
看起来问题出在:
r'\1' + q.group(1)
那么.. 如何使用 python 将 text1 转换为 text2?
【问题讨论】:
-
尝试删除 r'\1' 中的 r
-
你的正则表达式只有一个匹配。这将是 q.group(0)。
-
哇..你是对的。谢谢。
标签: python regex python-2.7