加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 匹配没有前导和尾随空格的字符串

发布时间:2020-12-14 06:03:35 所属栏目:百科 来源:网络整理
导读:构建一个拒绝未修剪的输入字符串的表达式. 有一组列入白名单的符号,包括空格.但它不能在第一个或最后一个位置使用.但是,它可以在任何数量的任何前导和修剪白名单之间使用. 有以下表达式: ^[^s][A-Za-z0-9s]*[^s]$ …但它有多种原因无效,至少它仍然在前导
构建一个拒绝未修剪的输入字符串的表达式.

有一组列入白名单的符号,包括空格.但它不能在第一个或最后一个位置使用.但是,它可以在任何数量的任何前导和修剪白名单之间使用.

有以下表达式:

^[^s][A-Za-z0-9s]*[^s]$

…但它有多种原因无效,至少它仍然在前导位置和尾随位置匹配任何非空白符号,即使它不是白名单.此外,即使它与表达式匹配,也不会匹配单个字母单词.

白名单是A-Z,a-z,0-9,空格.

有效案例:

Abc132 3sdfas // everything ok

案例#1无效:

asd dsadas // leadingtrailing space is exist

案例#2无效:

$das dsfds // not whitelisted symbol at the leadingtrailing position

那么,如果它不是前导符号或尾随符号,如何在白名单中添加空白符号?

解决方法

您可以使用lookarounds来确保两端都没有空格:

^(?! )[A-Za-z0-9 ]*(?<! )$

Live demo

但是如果环境不支持外观,则以下正则表达式适用于大多数引擎:

^[A-Za-z0-9]+(?: +[A-Za-z0-9]+)*$

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读