用于输入的正则表达式由空格分隔,用于php的preg_match

时间:2015-05-20 09:00:50

标签: php regex

我想确保用户只提出以下内容:

keyword keyword keyword

在我的输入表格中。

这是正确的正则表达式吗?我试过了:

([a-zA-Z\-0-9]+\s)+

然而,这也符合以下部分:

this, is a keyword

我想在php的preg_match中使用正则表达式,以确保用户只输入以空格分隔的单词。我想确保没有逗号,分号,冒号,问号等。 单词可能包含字母(小写,大写),数字和短划线 - 。

感谢您的帮助和提示!

2 个答案:

答案 0 :(得分:2)

^([a-zA-Z\-0-9]+(?:\s|$))+$

使用anchors ^$禁止部分匹配。

https://www.regex101.com/r/fJ6cR4/22

答案 1 :(得分:2)

您可以通过使用正则表达式的开始^和结束$锚点来实现此目的

简化的正则表达式将是:

^[a-zA-Z0-9\s-]+$

请参阅DEMO