2016-12-26 1 views
-3

나는 다음과 같은 형식 그래서매치 두 사람은 지금 와서

<0.0,100000.0>

과 일치하는 C#에서 정규식 패턴을 구축하기 위해 노력하고있어 이 정규식과

var regexItem = new Regex(@"[<(]*[0-9][.]*[0-9][,]*[0-9][.]*[0-9][>)]$"); 

그러나이 정규식 <0,100000>

뭔가를 받고있다

일반적으로 숫자에 소수 구분 기호가 필요한 범위와 일치 시키려합니다.

편집는 마지막으로 나는이

var regexItem = new Regex(@"^[(<]\d+\.\d+,\d+\.\d+[)>]$"); 

도움

그것은 문제를 보려면이 정규식을 단순화하는 데 도움이 될
+0

'[.]'s 뒤에'*'를 제거하십시오. 또한'[.] '대신'\ .'을 사용할 수도 있습니다. –

+0

또한'<>'괄호가 필요 없습니다. 그리고', '구분자가 필요 없습니다. 그리고 그것은 한자리 숫자 만 허용합니다. –

+0

"@"<\ d + \. \ d +, \ d + \. \ d +> "'또는"@ "<\ d + \. \ d +, \ d + \. \ d +> | \ \ d + \. \ d +, \ d + \. \ d + \) "'(각도와 둥근 괄호의 숫자를 모두 확인). .NET에서 'RegexOptions.ECMAScript' 플래그로 컴파일하여 ASCII 숫자 만 일치시킵니다. –

답변

2

주셔서 감사합니다 사용했다.

은 실제로는 \d과 같습니다. []은 그 안에 하나 개의 값을 가지고 또한 경우 브래킷 (한 필요한 경우 항목이 내부 이스케이프로)를 생략 할 수있다 : 따라서 [.]이 -> 지금은 무슨 일이 일어 났는지 생각이보고 \.

[<(]*\d\.*\d,*\d\.*\d[>)]$ 

입니다 그 뒤에 요소 대신에 *을 넣었다. 그래서이

희망 트릭해야한다 (실제로이 아닌 리터럴 점 모든 문자를 의미하기 때문에) 또한 점은 탈출해야합니다

^[<(]\d+\.\d+,\d+\.\d+[>)]$ 

var regexItem = new Regex(@"^[<(]\d+\.\d+,\d+\.\d+[>)]$"); 

당신은 일치하는 정규 표현식을 직접 수정해야합니다 당신의 정확한 요구에 따라, 이것은 단지 당신이 당신의 질문에서 지정한 문제를 해결합니다.

+0

또한 ['$ %^& HGFVHNJ (.,.>') (https://regex101.com/r/H2BlV9/1)에서 일치하는 항목을 찾을 수 있습니다. 따라서이 표현이 " ". –

+0

문장에 _ 하나만있는 값이있는 경우에도 대괄호를 생략 할 수 있습니다. 마침표를 이스케이프해야한다고 표시하면 후자와 같이 올바르지 않습니다. – juharr

+0

표현식 앞에 ^를 추가 할 수 있습니다. 'END'뿐만 아니라'BEGINNING'의 전체 문자열을 찾습니다. – Michael