1

我如何在正则表达式中表达这一点以知道“#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

4 回答 4

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
于 2013-08-11T22:46:04.743 回答
0

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

/^[^\s]+#include/.test(kword_search)
于 2013-08-11T22:24:02.523 回答
0
/^(?:\s*|)#include/.test(kword_search)
于 2013-08-12T01:21:52.263 回答
0

简单地:

\S#include

在 jsfiddle 上查看通过测试的现场演示

于 2013-08-11T22:59:08.137 回答