2017-12-27 7 views
-2

문자열 표현식이 세미콜론으로 구분 된 16 진수 값만 포함하는 규칙에 맞는지 확인하는 정규식을 작성하고 싶습니까?C# Regular-expression 세미콜론으로 분리 된 16 진수 문자열 검사

A valid string looks like: "0x01;0x02;0X03" 

An invalid string may be: "0z01;0x02,003" 

그럼이 정규식을 어떻게 작성해야합니까? 미리 감사드립니다!

+0

다음 패턴을 시도하십시오 : 0x \ d {1,2}; – Sunil

+0

@Sunil '0X03'과 일치하지 않습니다. – JohnyL

+0

@Sunil : A-F는? – SBF

답변

0

이 작업을 시도 할 수 있습니다 :

하면 16 진수 값을 표현하려면
string source = "0x01;0x02;0X03"; 
    string pattern = @"^(0[xX][0-9A-Fa-f]+)(;0[xX][0-9A-Fa-f]+)*$"; 

    bool matched = Regex.IsMatch(source, pattern); 

는, 즉 [0x00..0xFF] 범위에, byte

string pattern = @"^(0[xX][0-9A-Fa-f]{1,2})(;0[xX][0-9A-Fa-f]{1,2})*$"; 
0

이 하나

(0[xX][A-Fa-f0-9]+;?)+$ 
+0

왜';'와 일치합니까? + $ 필요 없음. – JohnyL

1

이 rexex는 당신이 필요로하는 무엇을보십시오.

0(x|X)(\d|[a-fA-F]){1,}; 
+0

왜 ';'와 일치합니까? – JohnyL

+0

.net에서'\ d'와 조심하십시오 :'\ d' mtach * any * 페르시아어 :'3''4'라고 말하면'RegexOptions.ECMAScript' 옵션을 넣어 제외 시키십시오 –

+0

숫자를';'문자로 대체하면이 정규식은 참입니다. 그렇지 않다면'0'(x | X) (\ d | [a-fA-F]) {1}'을 제거하십시오. 제외 숫자는 '0 (x | X) ([0-9] | [a-fA-F]) {1,}' – BullyBoo

0

내가 문자열 분할 및 정규식의 조합을 사용합니다

string input = "0x01;0x02;0X03"; 

Boolean valid = input 
.Split(new char[] { ';' }) 
.All(x => Regex.Match(x, "0[xX[0-9a-fA-F]{2}").Success);