Regex 防止尾随空格和额外空格的正则表达式
现在我有一个正则表达式,它可以防止用户键入任何特殊字符。唯一允许的字符是A到Z、0到9或空格 我希望改进此正则表达式以防止以下情况:Regex 防止尾随空格和额外空格的正则表达式,regex,Regex,现在我有一个正则表达式,它可以防止用户键入任何特殊字符。唯一允许的字符是A到Z、0到9或空格 我希望改进此正则表达式以防止以下情况: 无引导/培训空格-如果用户在输入之前或之后键入一个或多个空格,则不允许 无双空格-如果用户多次键入空格键,则不允许 我现在使用的防止特殊字符的正则表达式如下所示,似乎工作正常,即: ^[a-zA-Z0-9 ]+$ 根据其他一些想法,我尝试了所有这些选项,但都不起作用: ^\A\s+[a-zA-Z0-9 ]+$\A\s+ /s*^[a-zA-Z0-9 ]+$/s*
^[a-zA-Z0-9 ]+$
根据其他一些想法,我尝试了所有这些选项,但都不起作用:
^\A\s+[a-zA-Z0-9 ]+$\A\s+
/s*^[a-zA-Z0-9 ]+$/s*
能帮我处理一下这个代码吗?同样,我只需要字母A-Z,数字0-9,没有前导或尾随空格
谢谢。您可以使用以下正则表达式:
^[a-zA-Z0-9]+(?: [a-zA-Z0-9]+)*$
看
正则表达式将在开头匹配字母数字(1个或多个),然后在一个空格中匹配零个或多个块,后跟一个或多个字母数字
作为替代方案,这里是一个基于lookaheads的正则表达式(但效率较低):
见
(?!.*{2})
不允许连续空格,(?=..*\S$)
要求字符串末尾有非空白,而(?=\S)
要求字符串开头有非空白。类似于^(?!.*{2}(?=\S.\S$)[a-zA-Z0-9]+$
?是C?什么编程语言?很好。尽管另一种方法无法捕获有效的1字符字符串,但它的工作方式非常有效。多谢各位@wiktor stribiżew我对命名捕获中的尾随空间有问题,但无法使其工作,请您指导我缺少什么?“联系人”一词必须包含在匹配搜索词中,这正是我想要实现的。@HenonoaH Maybe?@wiktor stribiżew我还希望最后一个输入(一个单词)匹配。可能吗?
^(?!.* {2})(?=\S)(?=.*\S$)[a-zA-Z0-9 ]+$