Guid에 대한 C # 정규식
쿠폰을 구문 분석하고 각 Guid 값 주위에 작은 따옴표를 추가합니다. 정규식을 사용하여 수행 할 생각이 정확히 정규식 전문가는 아닙니다.
Guid를 만나는 데 사용할 수있는 좋은 정규식이 있습니까?
두 번째 질문은 내가 사용할 수있는 가정하고 유효한 정규 존재를 Regex.Replace(String, String, MatchEvaluator)
찾았지만 구문을 잘 모르겠습니다. 아마도 다음과 가변적이다
return Regex.Replace(stringToFindMatch, GuidRegex, match =>
{
return string.Format("'{0}'", match.Groups[0].ToString());
});
구문 분석하려는하려는은 다음과 가변합니다.
"Password1_46_0_으로 passwordco0_.PASSWORD_CONFIG_ID를 선택하고 PASSWORD_CONFIG에서 passwordco0_을 선택하십시오. passwordco0_ WHERE
이것은 대리인이 필요하지 않습니다.
resultString = Regex.Replace(subjectString,
@"(?im)^[{(]?[0-9A-F]{8}[-]?(?:[0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$",
"'$0'");
이것은 다음 스타일과 일치하며 GUID에 대해 모두 동등하고 수용 가능한 형식입니다.
ca761232ed4211cebacd00aa0057b223
CA761232-ED42-11CE-BACD-00AA0057B223
{CA761232-ED42-11CE-BACD-00AA0057B223}
(CA761232-ED42-11CE-BACD-00AA0057B223)
업데이트 1
@NonStatic은 위의 정규 배열이 존재하는 구분 기호가있는 오 발견과 일치하는 구분 기호가 있습니다.
이것은 일반적으로 지원되는 정규식 조건에 의해 피할 수 있습니다.
JGsoft 엔진, Perl, PCRE, Python 및 .NET 프레임 워크에서 조건을 지원합니다. 루비는 2.0 버전부터 지원합니다. PCRE 기반의 정규식 기능이있는 Delphi, PHP 및 R과 같은 언어도 조건을 지원합니다. (출처 http://www.regular-expressions.info/conditional.html )
다음에 나오는 정규식은
{123}
(123)
123
그리고 일치하지
{123)
(123}
{123
(123
123}
123)
정규식 :
^({)?(\()?\d+(?(1)})(?(2)\))$
필요한 경우 필요한 것을 명확하게 표시하기 위해 숫자 만 일치하도록 솔루션이 단순화되었습니다.
가장 기본적인 정규식은 다음과 가변적입니다.
(^([0-9A-Fa-f]{8}[-][0-9A-Fa-f]{4}[-][0-9A-Fa-f]{4}[-][0-9A-Fa-f]{4}[-][0-9A-Fa-f]{12})$)
또는 여기에 넣을 수 있습니다 .
이것이 시간을 절약하기를 바랍니다.
http://regexhero.net/tester/를 사용하여 C # 코드를 쉽게 자동 생성 할 수 있습니다 .
무료입니다.
내가 한 방법은 다음과 가변적이다.
그런 다음 웹 사이트는 .NET 코드를 자동으로 생성합니다.
string strRegex = @"\b[A-F0-9]{8}(?:-[A-F0-9]{4}){3}-[A-F0-9]{12}\b";
Regex myRegex = new Regex(strRegex, RegexOptions.None);
string strTargetString = @" {CD73FAD2-E226-4715-B6FA-14EDF0764162}.Debug|x64.ActiveCfg = Debug|x64";
string strReplace = @"""$0""";
return myRegex.Replace(strTargetString, strReplace);
C # .Net이 주어진 텍스트에서 GUID를 찾아서 바꾸려면,
이 정규식을 사용하십시오.
[({]?[a-fA-F0-9]{8}[-]?([a-fA-F0-9]{4}[-]?){3}[a-fA-F0-9]{12}[})]?
예제 C # 코드 :
var result = Regex.Replace(
source,
@"[({]?[a-fA-F0-9]{8}[-]?([a-fA-F0-9]{4}[-]?){3}[a-fA-F0-9]{12}[})]?",
@"${ __UUID}",
RegexOptions.IgnoreCase
);
확실히 작동합니다! 또한 GUID에 대해 동일하고 수용 가능한 형식 인 다음 스타일을 일치 및 대체합니다.
"aa761232bd4211cfaacd00aa0057b243"
"AA761232-BD42-11CF-AACD-00AA0057B243"
"{AA761232-BD42-11CF-AACD-00AA0057B243}"
"(AA761232-BD42-11CF-AACD-00AA0057B243)"
.NET Framework 4에는 System.Guid 구조가 포함되며 GUID를 구문 분석하는 새로운 TryParse 및 TryParseExact 메서드가 포함됩니다. 이에 대한 예는 다음과 가변합니다.
//Generate New GUID
Guid objGuid = Guid.NewGuid();
//Take invalid guid format
string strGUID = "aaa-a-a-a-a";
Guid newGuid;
if (Guid.TryParse(objGuid.ToString(), out newGuid) == true)
{
Response.Write(string.Format("<br/>{0} is Valid GUID.", objGuid.ToString()));
}
else
{
Response.Write(string.Format("<br/>{0} is InValid GUID.", objGuid.ToString()));
}
Guid newTmpGuid;
if (Guid.TryParse(strGUID, out newTmpGuid) == true)
{
Response.Write(string.Format("<br/>{0} is Valid GUID.", strGUID));
}
else
{
Response.Write(string.Format("<br/>{0} is InValid GUID.", strGUID));
}
이 예에서는 새 guid 객체를 만들고 잘못된 guid가있는 하나의 호스트 변수를 사용합니다. 그런 다음 TryParse 메서드를 사용하여 두 변수 모두 유효한 guid 형식인지 확인합니다. 예제를 실행하면 인증서 변수에 유효한 guid 형식이없고 "InValid guid"가 표시됩니다. 유효한 변수에 유효한 Guid가 TryParse 메소드에서 true를 반환합니다.
더 쉬운 정규식 패턴을 사용합니다.
^[0-9A-Fa-f\-]{36}$
참고 URL : https://stackoverflow.com/questions/11040707/c-sharp-regex-for-guid
'IT' 카테고리의 다른 글
phpinfo ()-그것을 볼 수있는 쉬운 방법이 있습니까? (0) | 2020.08.03 |
---|---|
Vim에서 여러 버퍼를 삭제하는 방법은 무엇입니까? (0) | 2020.08.03 |
각도 2 드롭 다운 옵션 (0) | 2020.08.03 |
C ++에서 std :: string을 LPCWSTR로 변환하는 방법 (유니 코드) (0) | 2020.08.03 |
맞춤 HTML5 필수 항목 확인 메시지 설정 (0) | 2020.08.03 |