如何编写正则表达式检测字符串中仅包含1个井号(#)?
符合需求的正则表达式
直接使用如下正则即可:
^[^#]*#[^#]*$
各部分含义说明
^匹配字符串的起始位置,确保我们从字符串开头开始校验[^#]*匹配0个或任意多个不含#的字符,覆盖#之前的所有内容,支持#出现在字符串开头的场景#匹配唯一的特殊字符井号[^#]*匹配0个或任意多个不含#的字符,覆盖#之后的所有内容,支持#出现在字符串结尾的场景$匹配字符串的结束位置,确保校验覆盖整个字符串
原有写法出错的原因
你之前写的#{1}仅能匹配字符串中任意位置的单个#,不会限制整个字符串内#的总数量,只要字符串存在至少一个#就会返回匹配成功,自然会命中包含多个#的字符串。
内容的提问来源于stack exchange,提问作者michaelT
相关产品推荐
相关产品推荐

