2011-02-08 5 views
2

Excel 시트 수식에서 셀 참조의 유효성을 검사하려고합니다.시트 이름이 포함 된 Excel 셀 참조의 유효성을 검사하려면 어떻게합니까?

유효한 문자열 : 나는 표현을 다음 사용하고 있지만 작동하지 않는

  1. Sheet1!A1
  2. 'Sheet!!'!A1

.

"^='?[^[]/\*]*'?!+[A-Z]+[0-9]+$" 
+1

코드를 게시 할 수 있습니까? –

+2

우리는 두 가지 종류의 정규식 질문을 가지고 있습니다 : "teh regex codez"와 "regex not working"을 보내주십시오. 이것을 세 번째 종류로 바꾸자. 유효한 입력과 일치하지 않습니까? 무효 입력을 받아들이 는가? 어느 것? "작동하지 않음"은 문제에 대한 설명이 아닙니다. –

+0

큰 따옴표는 무엇입니까? 그것들은 정규식의 일부입니까? 문자열 구분 기호입니까? 문자열 구분 기호 인 경우 일반 문자열 대신 축 어적 문자열을 사용해야합니다. 경로와 정규 표현식을 작성할 때 처음부터 축 어적으로 나오는 문자열도 고려하지 않습니다. .NET regexes를 테스트하기 위해 JavaScript regex validator를 사용해서는 안됩니다. Regexes는 플랫폼/언어/라이브러리에 따라 다양한 형태로 제공됩니다. .NET regexes의 유효성을 검사하려면 .NET을 사용해야합니다. [LinqPad] (http://www.linqpad.net/)를 사용해 보는 것이 좋습니다. –

답변

1

오 다른 문제가 있습니다. ?

그 이와 작동한다 지금

^='?[^/\[]*]*'?!{1}[A-Z]+[0-9]+$ 
+0

아니요. '[A/Z] + [0-9] + $ ")'Regex.IsMatch ("Sheet1! A1 ", @"^ ='? [^/\ [] *] * '? –

+0

"="유효한 문자열은 "= Sheet1! A1"이 누락되었습니다. 원래 질문에서 어떻게 방출되었는지 알 수 없습니다. – meetjaydeep

+0

시트 이름에 * 문자가있는 경우 위의 내용이 올바르게 catch되지 않습니다. 그게 작동하도록 업데이트 된 정규식이 있습니다. '^ = '? [^/\ [] \ *] *'?! {1} [AZ] + [0-9] + $' – chrsmrtn

0

작업 : 을 = (\는 S | \ w) + [A-ZA-Z] + \ D +

3
Regex re = new Regex(@"^=('?[^']+'?|[^!]+)![A-Z]+[0-9]+$"); 
bool isOk = re.IsMatch("=Sheet1!A1"); 

변경! [^!]은 시트 이름에 원하지 않는 문자를 입력하십시오.

형식은 ='<anything>'!XN 또는 =<anything>!XN과 일치합니다. 여기서 X는 대문자 하나 이상이고 N은 적어도 하나의 숫자입니다.

편집 : 나는 영업 이익은 시작 여부에 = 문자 (원래의 게시물을했다)하고자하는 경우 확실하지 않다. 그렇지 않으면 = 문자를 정규 표현식의 시작 부분에서 제거하십시오.

+0

특별히 당신을 위해 시도했습니다. 두 표현식 모두 'true'로 평가됩니다. 그의 게시물이 편집되었습니다. 처음부터 평등 한 캐릭터를 삭제했습니다. 의도적인지 여부는 확실하지 않습니다. –

+0

아, 걱정 마세요. 괜찮아. +1. 어떻게 든 복사 - 붙여 넣기가 제대로되지 않았습니다. –

관련 문제