2016-11-07 10 views
1

법률 문자열을 사용하여 "포함하지 않는 문자열을 감지하는 예를 들면 다음과 같습니다. * "please help me" - 법적 문자열 * "please"help me"입니다 - help me"이 "로 시작하지 않기 때문에 문자열이 올바르지 않습니다.어떻게 <code>"</code>로 시작 <code>"</code>로 끝나는 중간에 <code>"</code>을 포함 할 수 없습니다에 의해 정의 플렉스

유효한 문자열을 잡으려면 규칙을 flex로 정의하고 싶습니다. 이 규칙을 사용하려고했지만 작동하지 않습니다. 규칙을 작성 \"^[\"].*\"

+0

어쩌면''[^ "] +"'-하지만 정확히 무엇을 위해서입니까? – Jan

답변

1

한 가지 방법은 너무 ["]이며, 그들이 문자 클래스 안에있는 경우 백 슬래시 - 탈출 따옴표 (또는 대부분의 다른 정규식 문자)에 필요하지 않다고

["][^"]*["] 

주입니다 \"과 정확히 같습니다. 그러나 나는 그것이 보이는 방식을 선호한다.

당신이 썼다 - 사실 ["][^"].*["] - "따옴표, 따옴표, 임의의 문자열, 따옴표"를 의미합니다. 당신이 원했던 것은 위의 정규 표현식으로 표현되는 "따옴표, 따옴표 이외의 다른 문자열, 따옴표"입니다.

문자열에 적어도 하나 이상의 문자가 포함되도록하려면 *+으로 바꿉니다.

+0

먼저 감사합니다. 나는 당신의 생각이 좋다고 생각하지만 어떤 경우에는 문자열 안에 허용됩니다. 불법입니다. 그것을 수정하는 방법도 알고 있습니까? 예를 들어 "help" "(입력 한 다음) 문자열을 다른 입력을 기다리면 잘못되었습니다. –

+0

감사합니다. rici, 나는 해결책에 도달 할 수있었습니다. 이 문제를 신경 쓰는 사람은 해결책이 될 것입니다. [ "] [^"\ n] * [ "] –

+1

Fwiw, 당신은 문자열에 개행 문자가 포함될 수 없다는 말을 결코하지 않았습니다. – rici