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

如何在Python中动态生成含用户输入值的正则表达式?

正确动态生成正则表达式的方法

你之前的问题出在错误把Python的字符串前缀r当成了正则模式的一部分,拼出来的字符串实际包含了r'和'这些多余内容,导致正则匹配逻辑完全出错。正确的做法是只构造正则模式本身,不需要把r''语法糖包含进去:

  • 方法一:使用f-string(推荐)
    如果你用的是Python 3.6及以上版本,直接用带r前缀的f-string最简洁:

    room_number = input("输入房间号:")  # 比如输入5
    pattern = rf'\b{room_number}\b'
    # 后续直接用这个pattern调用re模块方法,比如re.search(pattern, 目标文本)
    

    这样生成的pattern就是\b5\b,和你想要的r'\b5\b'效果完全一致。

  • 方法二:字符串拼接
    旧版本Python可以用字符串拼接的方式:

    room_number = str(input("输入房间号:"))  # 确保是字符串类型
    pattern = r'\b' + room_number + r'\b'
    

    这里给每个片段加r前缀是为了避免转义问题,拼接后同样能得到正确的正则模式。

额外提醒:如果输入的room_number包含正则特殊字符(比如., *, ?这类),一定要用re.escape()转义,防止破坏正则逻辑:

import re
room_number = input("输入房间号:")
pattern = rf'\b{re.escape(room_number)}\b'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:05:48