2014-04-15 3 views
0

aspx 페이지에 filterexpression을 삽입하는 데 사용하는 검색 필드 양식이 있습니다. 나는 상태와 같은 SQL과 같은 문자열을 삽입하는 사용자를 강제하고 싶은, 그래서 될 수 있습니다SQL과 같은 일반 표현

  1. 시작 여부 %로, 그래서 %를?
  2. [A-Za-z0-9 -_ +() \ s] +
  3. %와 같이 특수 문자가 아닌 문자, 숫자, 공백, 밑줄을 씁니다.

내 reg 표현식은 %? [A-Za-z0-9 -_ +() \ s] + %? $이지만 % test % test %를 쓸 수 없기 때문에 작동하지 않습니다. SQL 같은 조건. 오류 페이지에서 검색을하기 때문에 % test 또는 test % 또는 test 또는 % test %을 (를) 작성해야하지만 % test % test %는 작성하지 않아야합니다. 이 작업을 수행하는 방법? 감사합니다.

+0

문자열이 올바른 형태로되어있는 경우 코드를 뒤에서 제어하고 싶지 않습니다. 검색 양식 필드에서 regexpress를 만드는 것이 더 간단하다고 생각합니다. 하지만 내 정규 표현식에 뭔가 잘못된 것이있다. – user2317210

+0

당신은 어떤 언어를 쓰고 있습니까? ASP.NET에는 여러 언어가 포함되어 있습니다. – merlin2011

답변

-2

문자열 연산자의 시작이 누락 된 매우 가까이에 있습니다. ^. 이를 사용하지 않으면 입력의 어떤 부분에서 정규 표현식을 사용하여 %test%test%과 일치시킬 수 있습니다. 두 번째로 시작하는 식은 %부터 시작합니다.

using System.Text.RegularExpressions; 
using System; 

public class Program{ 
    public static void Main(string[] args) { 
     Regex rgx = new Regex(@"^%?[A-Za-z0-9-_+()\s]+%?$"); 

     Console.WriteLine(rgx.IsMatch("%test%")); //True 
     Console.WriteLine(rgx.IsMatch("%test %test%")); //False 
    } 
} 
+0

내가 가장 간단한 것을 잊어 버렸어 ... 고마워. – user2317210

+0

downvote에 대한 설명을 좀 할 수 있을까? – merlin2011