You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中基于多个正则表达式生成多句语句

Generate Random Sentences from Regex Components in Python

First, let's break down your regex into discrete, selectable parts—since the regex is built from groups of alternatives, we can map each group to a list of possible options. Here's how to turn those options into random, valid sentences that match your regex pattern:

Step 1: Define the Component Lists

First, I’ve parsed all the possible choices from each group in your regex into clear, usable lists:

import random

# Extract all valid options from the regex groups
openings = [
    "please ",
    "can you ",
    "could you ",
    "will you "
]
actions = [
    "eat",
    "drink",
    "pull up"
]
determiners = [
    "",  # Includes empty string to handle the optional "(?:this |that )?" group
    "this ",
    "that "
]
targets = [
    "desert",
    "drink",
    "it"
]
prepositions = [
    "on",
    "from"
]
possessives = [
    "",  # Empty string for the optional "(?:the |my )?" group
    "the ",
    "my "
]
locations = [
    "table",
    "chair",
    "full plastic plate",
    "full plastic",
    "cup"
]

Step 2: Build the Sentence Generator Function

We’ll write a function that randomly picks one option from each list, combines them, and fixes capitalization to make the sentences look natural:

def generate_sentence():
    # Pick random components from each list
    opening = random.choice(openings)
    action = random.choice(actions)
    determiner = random.choice(determiners)
    target = random.choice(targets)
    preposition = random.choice(prepositions)
    possessive = random.choice(possessives)
    location = random.choice(locations)
    
    # Combine all parts into a raw string
    raw_sentence = f"{opening}{action} {determiner}{target} {preposition} {possessive}{location}"
    
    # Capitalize the first letter for proper sentence structure
    final_sentence = raw_sentence.capitalize()
    
    return final_sentence

Step 3: Generate Multiple Example Sentences

Test the function by generating a batch of random sentences to verify it works:

# Generate 5 unique sentences
for _ in range(5):
    print(generate_sentence())

Sample Outputs:

Could you pull up that it from my full plastic plate
Please drink this desert on the chair
Will you eat it from my cup
Can you pull up that drink on the table
Please eat this desert on full plastic

Quick Notes on Flexibility

  • The empty strings in determiners and possessives directly mirror the optional parts of your regex, so you can get sentences like "Will you drink desert on cup" which is valid per your original pattern.
  • If you want to filter out grammatically awkward combinations (like "pull up it"), you could add simple conditional logic (e.g., skip pairing "pull up" with "it"). But since your regex allows these combinations, the function retains that flexibility by default.

内容的提问来源于stack exchange,提问作者user1960217

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:29:32