通过标记Python连接整个单词

2024-10-02 22:27:34 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有这样的句子:

His/O name/O is/O Petter/Name Jack/Name and/O his/O brother/O name/O is/O 
Jonas/Name Van/Name Dame/Name

我怎样才能得到这样的结果:

Petter Jack, Jonas Van Dame.

到目前为止,我已经试过了,但它仍然只是两个词:

import re
pattern = re.compile(r"\w+\/Name)
sent = sentence.split()
for i , w in sent:
    if pattern.match(sent[i]) != None:
        if pattern.match(sent[i+1]) != None:
        #....
        #join sent[i] and sent[i+1] element
        #....

Tags: andnamerenoneifismatchvan
2条回答

试试这个

pattern = re.compile(r"((\w+\/Name\s*)+)")
names = pattern.findall(your_string)
for name in names:
    print(''.join(name[0].split('/Name')))

我在考虑一个两阶段的解决方案

r = re.compile(r'\w+\/Name(?:\ \w+\/Name)*')    
result = r.findall(s)
# -> ['Petter/Name Jack/Name', 'Jonas/Name Van/Name Dame/Name']

for r in result:
    print(r.replace('/Name', ''))
# -> Petter Jack
# -> Jonas Van Dame

相关问题 更多 >