-3

我想匹配包含带/不带空格的单词的字符串,但它应该包含至少一个非空格字符。下面的正则表达式是否正确?

/[\w]*[\s]+/
4

2 回答 2

0

当您想匹配必须包含某些内容的字符串时,最好的方法是在捕获开始时进行正向前瞻,因此如果您想确保会有一些空白字符,那么您应该从正则表达式模式开始((?=.*\s)...)...其余的模式在哪里。如果您的意思是仅空格键字符(因为\s也将匹配制表\t符和换行符\n\r),则以((?=.* )...).

现在——你说的词是什么意思?您使用\w- 这是[a-zA-Z0-9_]. 如果这是您想要的,那么您的正则表达式模式是((?=.*\s)[\w\s]*), resp。((?=.* )[\w ]*).

但这也将匹配带有一个空格字符的字符串,resp。只有空格键字符,仅此而已。你应该澄清你的问题,因为我相信你想要别的东西,而不是这个......

于 2012-07-22T23:17:43.073 回答
0

应该匹配,

stackoverflow #2 -> 应该匹配任何字符,包括特殊字符

stackoverflow 2 -> 即使以空格开头也应该匹配

不应该匹配,

                -> containing only blank spaces
于 2012-07-22T23:21:13.570 回答