我想匹配包含带/不带空格的单词的字符串,但它应该包含至少一个非空格字符。下面的正则表达式是否正确?
/[\w]*[\s]+/
当您想匹配必须包含某些内容的字符串时,最好的方法是在捕获开始时进行正向前瞻,因此如果您想确保会有一些空白字符,那么您应该从正则表达式模式开始((?=.*\s)...)
,...
其余的模式在哪里。如果您的意思是仅空格键字符(因为\s
也将匹配制表\t
符和换行符\n
和\r
),则以((?=.* )...)
.
现在——你说的词是什么意思?您使用\w
- 这是[a-zA-Z0-9_]
. 如果这是您想要的,那么您的正则表达式模式是((?=.*\s)[\w\s]*)
, resp。((?=.* )[\w ]*)
.
但这也将匹配带有一个空格字符的字符串,resp。只有空格键字符,仅此而已。你应该澄清你的问题,因为我相信你想要别的东西,而不是这个......
应该匹配,
stackoverflow #2 -> 应该匹配任何字符,包括特殊字符
stackoverflow 2 -> 即使以空格开头也应该匹配
不应该匹配,
-> containing only blank spaces