2013-08-11 5 views
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 

정말 좋은하지 적절한 정량와 정규식

+0

에 테스트를 통과 참조하십시오. – hwnd

+0

@hnwd - 죄송합니다,이 스레드에 다시 오르는 걸 잊었습니다. –

답변

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 
+0

btw 왜 그것을 [] 안에 넣어야합니까? –

+0

여러 정규식과 같은 문자 클래스를 사용하는 것으로 간주됩니다. 이 경우에 당신이 그것을 필요로하는지 의심 스럽지만 나는 그것을 제자리에 놓습니다. – hwnd

0

를 사용하여 부정 문자 클래스,있다. 그리고 끝에서 $ 앵커를 제거하여 문자열 include로 끝나지 않습니다

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

모든 조건에서 작동하지 않습니다. –

+0

@fireflieslive. 작동하지 않는 문자열을 게시 할 수 있습니까? –

+1

OP가 원하는 것처럼 들리는'#include '앞에 공백 문자와 공백 문자가없는 줄에서는 작동하지 않습니다. '^ [^ #] * [^ \ s #] [^ #] * # include'와 같은 것을 시도하십시오. – Kevin

0

간단히 :

\S#include 

당신이 대답 이러한 답변 중 하나는, 표시하시기 바랍니다 수락 한 경우 live demo가 jsfiddle

0
/^(?:\s*|)#include/.test(kword_search) 
관련 문제