2017-12-18 135 views
-1
加入整个单词

让说,我有这样的句子:通过其标记的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. 

到目前为止,我已经尝试过这一点,但仍它只是加入2个字:

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 
     #.... 
+0

你为什么要拆分句子?你不能直接在所有文本上使用re? – furas

+0

我知道,我只是使用另一种方法来结合。仍然不知道如何通过使用全文 – Fregy

回答

1

尝试是这样的

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

通过它的标签加入我已经试过这个。但结果是单个词。我想加入一个人的名字。如果我尝试加入这个,我不能指定其他名字 – Fregy

+0

好吧,给我一下)) – vZ10

+0

检查编辑 – vZ10

1

我在考虑一个两相溶液

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 
+0

这个工程太。谢谢你的帮助 :) – Fregy