import re
regex = re.compile(r"^(我说(了)?|(我)?跟你说|(我)?说的是)?请?你?(.{0,2}我)?(把)?(音乐|歌曲|音响|音箱|播放)?(暂停|停)(下|一下|一会|一会儿)?(音乐|播放|音响|音箱|歌曲|音乐播放器)?(了)?(听到(了)?(吗|没|没有)|(你)?还放)?.{0,1}$", flags=re.MULTILINE)
test_str = ("我不听了\n"
"你别放了\n"
"我不想听了\n"
"别放了\n"
"我要听音乐\n"
"我不要听\n"
"我不听\n"
"别放了啊\n"
"跟你说别放了\n"
"你别放了听到没\n"
"你别放了还放\n"
"别放了你\n"
"你结束\n"
"你别放了啊\n"
"快把音乐关上\n\n\n"
"关闭音响\n"
"关闭音乐\n"
"关掉音乐\n"
"关掉播放器\n"
"你关掉音乐\n"
"你给我关掉音乐\n\n"
"暂停音乐\n"
"把音乐停下来\n"
"你把音乐停下来\n"
"暂停播放\n"
"暂停音乐播放器\n"
"给我停下\n"
"停下来\n"
"音乐停下来\n"
"暂停\n"
"你给我停下\n"
"快给我停下\n"
"停\n"
"暂停一下呗\n"
"停下\n\n"
"唱的真难听\n"
"好难听\n"
"真难听啊\n"
"不好听\n"
"不喜欢\n"
"真的不喜欢\n"
"不喜欢这首歌\n"
"不喜欢这个\n"
"你唱的太难听了\n"
"好难听\n\n"
"不想听音乐\n"
"别放音乐\n"
"不听音乐\n"
"想听周杰伦的歌\n")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html