C# 스타일로 작성된 if 문과 일치 시키려면 다음 정규식 패턴을 사용하고 있습니다.C#의 if 문과 일치하는 정규 표현식 패턴?
\b[if]{2}\b[ ]?\({1}(?<HeaderSection>[ \w\s\a\t\=\.\@\#\$\%\&a-zA-Z0-9\(\)\;\/\"\'\[\]\*]*)\){1}(?<CommentSection>[\s\a\w\t a-zA-Z0-9\/\.]*)[\r\n]*\{{1}(?<FunctionBody>[\r\n \a\s\wa-zA-Z0-9\(\)\"\.\;\:]*)[\r\n]*\}{1}
그 미친 긴 정규 표현식 패턴 만 보인다는 일부 작동하는 것은 나에게 그것을 설명 extent.Let,이 세 가지 이름을 캡처 그룹, 즉 HeaderSection, CommentSection 및 FunctionBody .HeaderSection 간의 일치를 포착했다 아래 문과 같이 if 문의 괄호를 시작하고 닫는 중.
if(Value1==Function(int Z))
캡처 됨;
Value1==Function(int Z)
마찬가지로 CommentSection은 닫는 괄호 뒤에 주석이 있으므로 아래 문에서 캡처합니다.
if(Value1==Function(int Z))//This is a Comment.
는
//This is a Comment.
를 캡처 FunctionBody는 아래의 코드와 같이 {및} 사이에 아무것도 포착;
if(Value1==Function(int Z))//This is a Comment.
{
This is the
space for
function body.
}
"기능 본문을위한 공간입니다." 그래서 정규 표현식이 일치하는 이유에 대한 설명이었습니다. 이제이 문제는 내가 이와 같은 함수를 가지고있는 것입니다.
위의 정규식을 사용하여 일치하는 경우 첫 번째 선언과 일치하지 않습니다.
if(Value1==Function(int Z)//This is a Comment.
{
Another function();
}
대신 일치 내부 일 즉
if(Value2==Value1)
{
Some code
}
내가 잘못한, 이하 지저분 다른 방법이 있으면 알려주세요, 또는 정규식 패턴의 경우 수정하시기 바랍니다 것을 지적하십시오 C#에서 정규 표현식 함수를 사용하여이 모든 작업을 수행하고 있습니다. 미리 감사드립니다.
. 왜 이것을 정규 표현식에서하고 싶습니까? 조금도? –
아니요, 정규식을 사용하고 싶지는 않지만 다른 방법으로는 찾을 수 없으므로이를 사용해야합니다. – PurpleXenon
좋은 옛날 http://dinosaur.compilertools.net/ – I4V