2012-08-27 1 views
0

정규식 지식 한도에 도달하여 google-fu가 실패하는 것 같습니다. 문자열 시작 부분에 하나의 슬래시 또는 두 개의 대괄호를 일치 시키십시오.

내가 ((

와 중 하나 이상의 슬래시로 시작하거나 (그리고 거기에 나를 위해 까다로운 도착)하는 것이 preg_match하지 매치 문자열을하려고 내 단지 일치시키는 데 사용 된 원본 /처럼 보였다 그 :

\^[^\/].*$\ 

그리고 그것은 아름다운 일을 내가 실패 문자열의 시작 부분에 두 개의 브래킷과 일치 할 때 그러나 나는 시도 내 모든 방법을 게시 할 것입니다하지만 난 그들에게 명확하게됩니다 추가 생각하지 않습니다...

내가 할 수있는 최선

\^[^\/(].*$\ 

예 :

문자열 : 안녕하세요

원하는 결과 : 일치

단순히 하나 개의 브라켓 문자 클래스에 이미있는 작품의 종류 만을 브래킷을 추가하는 등

문자열 : /Hello

원하는 결과 : 없음 일치

문자열 : // 안녕하세요

원하는 결과 : 일치

문자열 : (안녕하세요

원하는 결과 : 일치

문자열 없다 : (안녕하세요

원하는 결과 : 일치하지 않음

정말로 올바른 방향으로 밀어 줄 수 있기를 바랍니다.

감사

+0

왜 더 많은 - o-less 일반 '과 일치하지 않습니다!^ (/ {1,2} | \ (\()!'패턴을 사용하고이 일치의 결과를 반대로 바꾸는 것입니까? – raina77ow

+0

슬픈 듯이 일치를 뒤집는 것은 정규 표현식의 배열이기 때문에 문제가되지 않습니다. ~ 20 중 하나 일 뿐이므로 다른 모든 것을 바꿔야 만합니다. – genuineparts

답변

1

글쎄, 그것은 패턴을 구축 정확하게 당신이 lookaheads에 찾아 보인다 방식으로 가능 적어도 두 개의 괄호 - 문자열 시작 앵커 바로 다음.

는 나도 몰라

하지만, 무슨 일이 '(((안녕하세요'당신은뿐만 아니라에없는 경기를 의도 여부 문자열, '/// 안녕하세요'와 함께 수행해야합니다 -. 여부

+0

Genious! 고맙습니다! * lookaheads에서 읽으려고합니다 * – genuineparts

0

확인이 :

어쩌면
\^[^/(]{2}.*$\ 

? - 하나 또는 두 개의 forslashes 또는

점을 당신이이 경우에 'NEG-확인'이다 :

+0

슬프게도 이것은 하나의 브래킷과도 일치합니다 :// 감사합니다 – genuineparts

관련 문제