2

必须返回

kWordSyntaxSearch = "something~~abc#include";
kWordSyntaxSearch = "something~~a bc#include";
kWordSyntaxSearch = "something~~ abc#include";
kWordSyntaxSearch = "something~~abc #include";

必须返回FALSE

kWordSyntaxSearch = "something~~#include<";

到目前为止我做了什么

    //JUST SEARCHING FOR THE EXISTENCE OF #include
if(kwordSyntaxSearch_tilde.indexOf("#include")!= -1  &&  !/~~\s*#include\s*/.test(kwordSyntaxSearch_tilde) )

如果在 kwordSyntaxSearch 中找到“#include”,我想通过上面的条件,然后检查 ~~ 和 #include 之间是否有不必要的字符。

(只是细节)~~被放在 kWordSyntaxSearch 上以标记之前的语法是正确的,我只是想在发生这种情况时触发一个错误:

#include<iostream.h>usdfsd
#include<conio.h>
4

4 回答 4

0

您可能会使用这个正则表达式?

~~(?=.+#include)

看看它是如何在这里工作的。

由于匹配返回 TRUE 而非匹配返回 FALSE,我认为应该这样做。

于 2013-08-12T06:52:06.077 回答
0

尝试消极看待背后:

kwordSyntaxSearch.*(?<!~~)#include.*

这不需要~~存在。

如果需要存在~~

kwordSyntaxSearch.*~~[^~]+#include.*
于 2013-08-12T06:50:55.683 回答
0

以下正则表达式应提取 ~~ 和 #include 之间的不必要字符

(?<=~~).+(?=#include)

然后您可以检查结果字符串是否为空,如果是,则为 TRUE。

注意:如果您标记偏好的语言,我可能会给您一个更好的解决方案。

于 2013-08-12T07:02:45.590 回答
-1

试试这个正则表达式模式:

kWordSyntaxSearch = ".*~~.{1,}#include.*
于 2013-08-12T07:33:55.787 回答