Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式-匹配不带前导和尾随空格的字符串_Regex_String_Language Agnostic - Fatal编程技术网

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]+)*$