我在读this article,这给了我使用群组的想法。 我想在/O、/ORGANIZATION、/PEOPLE或/LOCATION后面的字符前面添加\t
我有以下内容
'The/O\nSkoll/ORGANIZATION\nFoundation/ORGANIZATION\n,/O\nbased/O\nin/O\nSilicon/LOCATION\nValley/LOCATION\na'
想要以下这些
^{pr2}$我试过了,但没用。我怎么能回忆起regex捕获了哪个组织?在
x = str(t)
x = re.sub('\/(ORGANIZATION|LOCATION|PERSON|O)','\t\1', x)
我的中间解决方案,但最好有一个班轮。在
x = re.sub(r'\/(ORGANIZATION)',r'\t\1', x)
x = re.sub(r'\/(LOCATION)', r'\t\1',x)
x = re.sub(r'\/(PERSON)',r'\t\1', x)
x = re.sub(r'\/(O)',r'\t\1', x)
但你的组织不需要有两条线。在
您需要一个negative lookahead assertion(语法:}。以下是我的建议:
(?!...)
,其中...
是断言试图匹配的内容)来区分/O
和{注意,lookahead断言以
(?
开头,因此它不会形成一个编号的组,因此您仍然希望在替换字符串中检索该组。在还要注意我是如何使第一个字符串成为原始字符串,但没有使第二个字符串成为原始字符串。我假设您想要在替换字符串中使用的是制表符,而不是后跟t的反斜杠,所以我在替换字符串中引用了第二个反斜杠,而不是第一个。如果你需要对这些反斜杠有更多的解释,请告诉我。在
最后,如果您想在替换中保留一个正斜杠,可以像一些人建议的那样,在搜索正则表达式周围加上第二对分组圆括号,但将其添加到替换字符串中可能更简单,因此:
^{pr2}$我想这就是你要找的。如果您还有任何问题,请告诉我们。在
像这样:
演示:http://regex101.com/r/nB5dN3/1
相关问题 更多 >
编程相关推荐