2016-07-22 2 views
-1

나는 형식의 텍스트 상자가 있습니다. 나는 텍스트 상자에 경로 (예 : D : \ temp)를 쓰고 그 후에는이 경로를 만들고 싶습니다. 이 정규식을 사용하려고했지만 작동하지 않습니다! 나는 첫 번째 편지를 위장하고 싶지만 일하지 않고있다. 또한 문자열을 ":"및 "\"한 번만 포함합니다. 그리고 이후 ": \"내가 @ 소문자 일부 문자열을 삽입 할 "^ [A-Z] [:] [\] [A-Z] $" 어떤 sugestions있으세요? 감사합니다.정규식이 작동하지 않습니다 C#

+0

당신이 시도 것을 표시하고 밤은 작업입니다. – Takarii

+1

[a-z]는 하나의 소문자 만 허용합니다. 1 개 이상 허용하려면 + 뒤에 추가하거나 0 이상은 *를 사용하십시오. 그리고 현재 백 슬래시를 구분하는 두 번째 백 슬래시로 구분해야합니다. – juharr

+1

"작동하지 않는다"는 것은 무엇을 의미합니까? 작동해야하는 것은 무엇이며 실패해야하는 것은 무엇입니까? 예제를주세요! –

답변

0

[A-Z] : \ [a-z] +이 정규 표현식을 사용해보세요. 그런 시도^[AZ] : \\ w + $

코드에서이 같은 정규식을 선언 :이

string myRegex = @"[A-Z]:\\[a-z]+" 

, 당신은 단지 D와 같은 경로의 유효성을 검사 : \ 온도를하지만 D : \ 임시 \ TEMP2

2

나는 당신이 찾고있는 정규 표현식이 당신의 두 가지 문제가 있습니다

@"^[A-Z]:\\[a-z]+$" 

믿습니다. 먼저 백 슬래시를 구분하지 않으므로 []를 정확히 구분한다는 의미입니다.], [또는 콜론 다음에 오는 ~ z를 찾습니다. 두 번째 문제는 백 슬래시 뒤에 하나 이상의 문자를 찾으려면 +를 사용해야한다는 것입니다. 마지막으로 콜론과 백 슬래시를 그룹으로 지정할 필요는 없습니다.

+0

질문에 따라, 나는 또한 이것이 요구되는 것이라고 생각하지만, OP는 하나 이상의 중첩 된 경로와 일치하지 않을 것이라는 점을 알고 있어야합니다 예배 규칙서. 예를 들어 D : \ temp \ other는 일치하지 않습니다. – fiveclubs

+1

@fiveclubs 도트와 일치하지 않아 확장자가있는 파일과 대소 문자가 혼합 된 대소 문자 나 파일 이름 또는 밑줄이나 숫자와 같은 알파가 아닌 문자가있는 파일은 일치하지 않으므로 파일과 일치하지 않습니다 . – juharr

0

먼저 통과 또는 실패해야하는 예가 도움이 될 것입니다.

둘째, Expresso 또는 Regex Fiddle과 같은 상황을 설명하는 정규식을 작성하는 데 도움이되는 도구를 사용하십시오.

지금, 질문에. - 그것은 라인

  • [AZ]의 시작과 일치 - 하나의 대문자
  • 일치 : - 여기 /^[A-Z]:\\[a-z]+$/gm http://refiddle.com/refiddles/5792227f75622d3df0480300

    • 이^예입니다 콜론과 일치
    • \ - 백 슬래시로 탈출
    • [아리조나]은 + A 슬래시 일치 - 하부 문자를합니다 (+ 수단 1 회 이상)과 일치
    • ,745 -
    • $가

    편집 라인

  • 의 끝과 일치 : 폴더의 첫 번째 문자를 확인하기 위해 추가 검사하는 것은 대문자 /^[A-Z]:\\[A-Z][a-z]+$/gm http://refiddle.com/refiddles/5792259075622d3df05e0300

    +0

    'D : \ one \ two'와 같은 여러 폴더를 원한다면이 폴더를 변경해야합니다 ... 또한 소문자 폴더 이름을 원하십니까? – CaffGeek

    +0

    예 .. 소문자 ...하지만 폴더 이름의 첫 글자가 위쪽이어야합니까? 어떻게해야합니까? –

    +0

    그런 다음 소문자 앞에 정규 표현식을 추가해야합니다. (예 : \\ [AZ] [az] + $/gm') 소문자 체크 전에 대문자를 하나씩 추가했습니다. ... 현재이 정규식은 대문자와 1 개 이상의 소문자가 필요하기 때문에'D : \ Fo'를 전달하지만'D : \ F '는 실패합니다. '+'를'*'로 변경하면 0 또는 그 이상의 소문자로 변경됩니다. – CaffGeek

    관련 문제