【问题标题】:How do I generate multiple sentences from multiple regular expressions in python如何从python中的多个正则表达式生成多个句子
【发布时间】:2018-02-15 17:01:12
【问题描述】:

我有这七个正则表达式。 (?:please |(?:can|could|will) you) (?:eat|drink|pull up) (?:this |that )? (desert|drink|it) (?:on|from ) (?:the |my )? (table|chair|full ?plastic(?: plate)?|cup) 我需要使用这些正则表达式中的单词生成句子,例如: “请在餐桌上吃掉这片沙漠”, “你能吃我杯子里的饮料吗”等。 再举几个例子

请在桌子上吃这个沙漠,

  • 请在桌子上吃这个沙漠,
  • 你能不能把桌子上的这个沙漠吃掉,
  • 你会在桌子上吃这个沙漠吗,
  • 请在桌上喝下这片沙漠,
  • 请在桌上喝下这片沙漠

请有任何想法..

【问题讨论】:

  • 有一百万个句子可以满足你的追求。你的最终目标是什么?
  • 我的目标是,我只需要使用正则表达式中出现的单词来生成句子。生成的任何句子都应该只包含上述正则表达式中的单词。
  • 解析正则表达式以创建排列列表,然后排列。
  • 但是,你想要所有的句子,只是一组随机句子,还是什么?
  • 正则表达式设计用于处理输入,而不是生成输出。您当前的模式可能偶然只允许一组有限的单词组合,但假设您在其中的某些部分添加了*+,甚至.。这是自找麻烦,因此您不会找到执行此操作的标准方法。您可以编写自己的代码来解析模式,但此时它不会是正则表达式,它将是一个使用正则表达式的程序。

标签: python regex python-3.x


【解决方案1】:

我想你想要这样的东西。请理解,我不会对后果负责。 :-)

您的正则表达式似乎只是表达可能句子每个部分的替代方法。

>>> for word_1 in ['please', '']:
...     for word_2 in ['do', 'supply']:
...         for word_3 in ['it', 'something']:
...             sentence = ' '.join([word_1, word_2, word_3])
...             sentence
...             
'please do it'
'please do something'
'please supply it'
'please supply something'
' do it'
' do something'
' supply it'
' supply something'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    相关资源
    最近更新 更多