我需要在上下文无关语法中转换以下正则表达式:[A-Za-z _] +
我想要一种更好的方法来识别只在语法中添加所有字母的字符串。
import nltk
grammar = """
S -> '"' A '"'
A -> B A | B
B -> '_' | 'a' | 'b' | 'c' | ... | 'z' | 'A' | 'B' | 'C' | ... | 'Z'
"""
grammar = nltk.CFG.fromstring(grammar)
字符串是从“ a”到“ z”(大写和小写)的字符序列,下划线是“ _”。
我找到了解决方案:
strings = list(set(regexp_tokenize(s, pattern='"[A-Za-z_]+"')))
for st in strings:
grammar += "S -> \'" + st + "\'\n "