2016-02-09 58 views
0

我想用正则表达式,从而获得从文本的具体信息,我举一个例子用半伪〜你还可以回复我,半伪代码:我可以在正则表达式中插入变量吗?

list=["orange","green","grey"] 
text= "The Orange is orange" 
for word in list: 
    if word == re.compile(r'word, text): 
      capture Orange in order to have the noun 

当心!我的问题集中在是否有可能使用变量(因为以上),以便进行循环,并查看基于列表的文本中是否有相同的单词。

不要专注于如何捕捉橙色。

+1

答案取决于语言,所以伪代码不是这样一个好主意。 – Biffen

+1

我不明白你需要什么。你想把变量值放在正则表达式模式中?你可以在Python中做're.search('{}'.format(word),text)''。 – gmoshkin

+1

@DimitrisTsoukalas你想搜索* exact *单词吗?如果是这样,为什么使用正则表达式呢?你在尝试做POS标签吗?如果是这样的话,那么这种方法会让你感到很痛苦。 – Biffen

回答

0

我认为Biffen有正确的想法,如果您使用POS标记标记,您处于一个痛苦的世界。无论如何,这可以让你在你的text可变

for word in list: 
    if word in text: 
     # Do what you want with word 

如果你想使用正则表达式,那么你可以建立从字符串中的模式,使用括号来捕捉匹配的话。然后使用group()访问捕获的模式

for word in list: 

    pattern = re.compile(".*(" + word + ").*") 
    m = re.match(pattern, text) 

    if m: 
     print(m.group(1)) 
相关问题