2011-05-09 4 views
5

나는 다음과 같은 문자열을 가지고대괄호와 작은 따옴표가 작동하지 정규식 제거

[custID] = 'A99999999'

나는 대괄호와 작은 따옴표를 제거하기 위해 다음과 같은 노력하고 있어요

Regex.Replace(sql, "/[\[\]']+/g", " ") 

하지만 작동하지 않습니다. 계속 동일한 결과가 나타납니다.

참고 : sql은 위의 문자열을 포함하는 변수입니다.

나는 이것이 당신이 찾고있는 무엇 결과가

custID = A99999999

답변

14

\[ 당신이 생각하는대로하지 않습니다. Regex도 Perl과 동일하지 않습니다. 대신이 시도 :

Regex.Replace(sql, @"[\[\]']+", ""); 
1

되고 싶어? ['\\/]

슬래시 또는 작은 따옴표 인 모든 단일 문자와 일치해야합니다.

0

당신은 문자열 분할을 사용할 수 있으며 다음과 같은 조인

 string sql = "[custID] = 'A99999999'"; 
     var correctedString = string.Join("",sql.Split(new char[] {'[', ']', '\''})); 
     Console.Write(correctedString); 

당신이 그 대체 정규식 사용 [\[\]']을 사용합니다.

1

나는 당신이 찾고 있다고 생각합니다 Regex.Replace(sql, @"[\[\]']", " "); @는 이스케이프가 필요없는 문자열을 도입하고 Regex.Replace은 모든 일치를 바꿉니다. 따라서 g 플래그가 필요하지 않습니다. 정규식 구문은 여기에서 지원되지 않습니다.

1

이를 사용할 수 있습니다

Regex.Replace(sql, "[][']", "") 

해당 작업을 수행하는 방법을 궁금해하는 경우, ] 바로 [ 후에는 폐쇄로 취급하지만, 리터럴 문자되지 않습니다.

관련 문제