2017-07-23 18 views
-4

我需要一些幫助。將CFG字符串轉換爲元組的功能

我想在Python中編寫一個函數,它允許我從一個字符串中創建一個元組。如果字符串格式不正確,該函數應打印「False」。

這裏的功能的I/O的示例:

Input: cfg rule('S --> NP VP')  # should be the input as str 
Output: ('S',['NP','VP'])   # this should be the output 

I = STR(輸入( '等待伽馬規則:'))
DEF grammarule(克):
如果我==?
打印
其他
打印(「錯誤格式」)

的事情是,我不得不把字符串轉換成一個元組我猜。 但我不知道該怎麼做。 注意,給出的例子只是一個原型。 通過這一事實其更importent得到以下結構:
( '的S - > NP VP')沿

( 'SS,[' NP」, 'VP'])

+0

請出示你的代碼 – liorko

+0

這似乎很簡單。你的代碼有問題嗎?我們可以幫助。 –

+0

「正確格式」?好吧,如果我==「cfg規則('S - > NP VP')」:結果=('S',['NP','VP'])' –

回答

0

東西這些線?

import re 

def convert(text): 
    x=re.match(r'([a-zA-Z]+) --> ([a-zA-Z]+) ([a-zA-Z]+)',text) 
    if x: 
     return (x.group(1),[x.group(2),x.group(3)]) 
    else: 
     return False 

convert("S --> NP VP") 

最佳,

但丁

+0

請讓我知道這是否回答你的問題,或者如果我誤解了它。 – Dante