0
夥計們,我想解析一個WCF服務接口源代碼以生成其異步版本的Begin,End樣式。即從以下版本:使用.net正則表達式解析包含特殊字符的字符串,如「<>」
[ServiceContract]
public interface IExamManageService
{
[OperationContract]
void NewExam(ExamData ed);
...
}
產生新的版本是這樣的:
[ServiceContract]
public interface IExamManageService
{
[OperationContract(AsyncPattern = true)]
IAsyncResult BeginNewExam(ExamData ed, AsyncCallback callback, object state);
void EndNewExam(IAsyncResult result);
}
我用正則表達式來完成解析任務。匹配模式是:
@"(?<oc>\[OperationContract.*?\])\s*?\r\n\s+?(?<ret>[\w\d_]+)\s+?(?<nam>[\w\d_]+?)\(((?<pn>[\w\d_]+?)\s+?(?<pv>[\w\d_]+?)(\s*?,\s*?)?)*?\);"
一切順利,直到它遇到過這樣的說法:
IEnumerable<Guid> GetIDCollection();
,解析器不工作。有沒有人有個好主意來捕獲這個「IEnumerable <Guid>」作爲一個整體的返回值類型?
你說得對,我不擅長使用正則表達式愚蠢地用[\ w \ d_]排除<>而不是到它。您的主頁是regex101嗎?測試正則表達式非常酷。我收集了它。謝謝。 –