如何知道目标字符串之前是否有非空白字符?

时间:2013-08-11 22:22:35

标签: javascript regex

我如何在正则表达式中表达这一点,以便在'#include'之前知道是否存在非空白字符?

var kword_search = "#include<iostream.>something";
/^?+\s*#include$/.test(kword_search)//must return false

var kword_search = "asffs#include<iostream.>something";
/^?+\s*#include$/.test(kword_search)//must return true

正则表达式并不是很好

4 个答案:

答案 0 :(得分:2)

您可能正在寻找类似/^[\S ]#include/

的内容

说明:

 ^                         beginning of the string
  [\S ]                    any character of: non-whitespace (all but
                           \n, \r, \t, \f, and " "), ' '
   #include/               '#include/'

正则表达式快速参考

[abc]      A single character: a, b or c
[^abc]     Any single character but a, b, or c
[a-z]      Any single character in the range a-z
[a-zA-Z]   Any single character in the range a-z or A-Z
^          Start of line
$          End of line
\A         Start of string
\z         End of string
.          Any single character
\s         Any whitespace character
\S         Any non-whitespace character
\d         Any digit
\D         Any non-digit
\w         Any word character (letter, number, underscore)
\W         Any non-word character
\b         Any word boundary character
(...)      Capture everything enclosed
(a|b)      a or b
?          Zero or one
*          Zero or more
+          One or more

答案 1 :(得分:0)

使用带有适当量词的否定字符类。并从末尾删除$锚点,您的字符串不会以include结尾:

/^[^\s]+#include/.test(kword_search)

答案 2 :(得分:0)

简单地:

\S#include

查看live demo在jsfiddle上传递测试

答案 3 :(得分:0)

/^(?:\s*|)#include/.test(kword_search)