构建一个拒绝未修剪输入字符串的表达式。
有一组白名单符号,包括 whitespace。但不能在第一个或最后一个位置使用。然而,它可以以任何量在任何前导和修剪白名单符号之间使用。
有以下表达式:
^[^\s][A-Za-z0-9\s]*[^\s]$
字符串
...但它不工作的几个原因,至少它仍然匹配在前导和尾随位置的任何非空白符号,即使它不是白名单。此外,它不会匹配单字母单词,即使它匹配的表达式。
白名单是A-Z、a-z、0-9、空白。
有效案例:
Abc132 3sdfas // everything ok
型
无效病例#1:
asd dsadas // leading\trailing space is exist
型
无效病例#2:
$das dsfds // not whitelisted symbol at the leading\trailing position
型
那么,如果一个空格符号不是前导或尾随符号,如何将它添加到白名单中呢?
2条答案
按热度按时间vcirk6k61#
您可以使用lookarounds来确保两端没有空格:
字符串
Live demo
但是如果环境不支持lookarounds,下面的正则表达式在大多数引擎中都可以工作:
型
1zmg4dgp2#
这取决于你的正则表达式引擎是否支持look around
字符串
Demo