는 효율성 고체를하기 위해 나는이 :
1)가 주문한 가능성에 의한 정규식 명령.
2) 일치하는 루프가 발견되면 일치하는 루프가 빠져 나올 수 있습니다.
내가 할 수있는 다른 개선 사항이 있는지 또는 내 문제에 대한 더 나은 접근 방법이 있는지 궁금합니다.
호출 코드 : 정규식 명령의
bool resolved = false;
Match regexMatch = null;
foreach (var resolverKvp in _resolvers)
{
if (resolverKvp.Key.Pattern.IsMatch(topicName))
{
regexMatch = resolverKvp.Key.Pattern.Match(topicName);
// Use the kvp value
resolved = true;
break;
}
}
샘플을 통해 반복 :
<add messagename="BackLayVolumeCurrencyOddsFormat" pattern="^.*/M/E_([0-9]+)/MEI/MDP/(\d{1,3})_(\d{1,3})_(\d+)_([a-zA-Z]{3})_([1-3])$" assembly="Client.Messaging"
type="Client.Messaging.TopicMessages.BackLayVolumeCurrencyOddsFormatResolver">
</add>
<add messagename="Market1" pattern="^.*/M/E_([0-9]+)$" assembly="Client.Messaging"
type="Client.Messaging.TopicMessages.Market1Resolver">
</add>
데이터 예 :
regex 1:
6/E/E_1/E/E_511010/E/E_527901/E/E_631809/E/E_631810/E/E_631811/M/E_1379656/MEI/MDP/10_10_1_USD_3
regex 2:
1/E/E_1/E/E_100004/E/E_190539/E/E_632113/E/E_632120/M/E_1380084
은 사전에 감사합니다.
RegexOptions.Compiled를 시도 했습니까? –
RegexOptions.Compiled 추가하기. 감사. – Totero
위대한 질문 ..이게 나 자신과 같은 일을하고 있었다 .. Crazeee world –