允许单个空格在单词之间的正则表达式

3

我正在使用以下正则表达式:

^\S.*\S$

但是当单词之间有多个空格时,该正则表达式无法工作。另外,它不允许您输入单个字符。

我想要验证没有前导和尾随空格以及单个单词之间的空格。单词可以包含任何字母数字字符以及特殊字符。

如果我尝试在文本框中输入 'a',它不会接受。


这个正则表达式应该对以下内容返回true:shashank shekhar - Shashank Shekhar
1
如果您在此处提供示例,将会更好。对于输入A,期望的输出将是B。 - fhnaseer
@ShashankShekhar,请在你的问题中发布它。 - Avinash Raj
抱歉,我是这个博客的新手.. 在评论中,它不会接受两个单词之间的多个空格。 - Shashank Shekhar
1
在你的问题中添加示例,而不是在评论中。 - fhnaseer
显示剩余3条评论
5个回答

6

看起来您想要这样的东西,

^\S+(?: \S+)*$

\S 匹配任何非空格字符。

演示


5

如果只需要字符,请使用以下内容:

^[a-z|A-Z]+(?: [a-z|A-Z]+)*$

我该如何接受Unicode拉丁字符呢? - Pathros

1

以下代码允许在单词和特殊字符之间保留一个空格。同时,它还防止字符串开头和结尾处出现空格。

^([a-zA-Z0-9@.,]+\s)*[a-zA-Z0-9@.,]+$

我该如何接受Unicode拉丁字符呢? - Pathros

0

[A-Za-z]+(\s[A-Za-z]+)? 可以用来在单词之间添加一个空格


我需要使用字母数字和特殊字符,但如果我只想输入一个字符,它无法正常工作。 - Shashank Shekhar
@ShashankShekhar,为什么你在你的问题中没有添加解释? - Avinash Raj
如何同时接收Unicode和Latin字符? - Pathros

0

只需断言两个空格不出现即可;

^(?!.*\s\s)\S(.*\S)?$

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接