我正在寻找一个与规则18-99? m? 18-99?相匹配的正则表达式。这里是我的尝试(1[89]|[2-9]\d) m (1[89]|[2-9]\d),但这与m相匹配。
为了澄清这一点,以下是可以接受的字符串:
m18
18m
m 18
18 m发布于 2022-06-17 17:16:40
您可以使用
^(?:(?:1[89]|[2-9]\d) ?)?m(?: ?(?:1[89]|[2-9]\d))?$见regex演示。
详细信息
^ -字符串的开始(?:(?:1[89]|[2-9]\d) ?)? - 18、19 . 99和可选空间的可选序列m - m(?: ?(?:1[89]|[2-9]\d))? -一个可选的空格序列,然后是18,19 . 99^ -字符串的结尾如果不想匹配只包含m的字符串,请使用
^(?!m$)(?:(?:1[89]|[2-9]\d) ?)?m(?: ?(?:1[89]|[2-9]\d))?$其中,(?!m$)在^之后阻止像m这样的字符串进行匹配。
https://stackoverflow.com/questions/72662450
复制相似问题