Regex 正则表达式-匹配不带前导和尾随空格的字符串
生成将拒绝未修剪的输入字符串的表达式 有一组白名单上的符号,包括空格。但不能在第一个或最后一个位置使用。但是,它可以在任何前导符号和修剪白名单符号之间任意数量地使用 有以下表达:Regex 正则表达式-匹配不带前导和尾随空格的字符串,regex,string,language-agnostic,Regex,String,Language Agnostic,生成将拒绝未修剪的输入字符串的表达式 有一组白名单上的符号,包括空格。但不能在第一个或最后一个位置使用。但是,它可以在任何前导符号和修剪白名单符号之间任意数量地使用 有以下表达: ^[^\s][A-Za-z0-9\s]*[^\s]$ 。。。但由于几个原因,它不起作用,至少它仍然在前导和尾随位置匹配任何非空白符号,即使它不是白名单。此外,即使它与表达式匹配,也不会匹配单个字母单词 白名单是A-Z,A-Z,0-9,空白 有效个案: Abc132 3sdfas // everything ok 无
^[^\s][A-Za-z0-9\s]*[^\s]$
。。。但由于几个原因,它不起作用,至少它仍然在前导和尾随位置匹配任何非空白符号,即使它不是白名单。此外,即使它与表达式匹配,也不会匹配单个字母单词
白名单是A-Z,A-Z,0-9,空白
有效个案:
Abc132 3sdfas // everything ok
无效案例#1:
无效案例#2:
那么,如果不是前导或尾随符号,如何将空白符号添加到白名单中?取决于您的正则表达式引擎支持的环顾
^(?=[A-Za-z0-9])([A-Za-z0-9\s]*)(?<=[A-Za-z0-9])$
^(?=[A-Za-z0-9])([A-Za-z0-9\s]*)(?您可以使用环视仪确保两端没有空格:
^(?! )[A-Za-z0-9 ]*(?<! )$
您能举一些有效和无效案例的例子吗?请尝试使用\\s。如果这有帮助,请告诉我,我也有同样的问题,我就是这样missing@MaskedMan是的,看一看^[a-Za-z0-9]+(?:\s+[a-Za-z0-9]+)*$
^[a-Za-z0-9]+.[a-Za-z0-9]+$
:第一个字符应该是字母数字,并且至少出现一次,最后一个字符也应该是相同的,介于两者之间。这解决了问题吗?向前看(?!)和向后看不是都解决了吗(?在不支持向后看的Firefox中,你怎么能做到这一点?@DenisHowe不,他们不是错误的方法。你可以在JS中使用^(?!|.*$)[A-Za-z0-9]+$
,或者查看更新。
^(?=[A-Za-z0-9])([A-Za-z0-9\s]*)(?<=[A-Za-z0-9])$
^(?! )[A-Za-z0-9 ]*(?<! )$
^[A-Za-z0-9]+(?: +[A-Za-z0-9]+)*$