В настоящее время мы создаем надстройку Microsoft Outlook, которая будет активирована на основе регулярного выражения в тексте сообщения электронной почты.Для этого мне необходимо исключить некоторые случаи, описанные ниже.Надеюсь, что кто-то может помочь, потому что я не очень глубокий эксперт по регулярным выражениям.Ниже текущего статуса и спрашивает.Если есть более разумный способ определения выражения регулярного выражения, я рад любому альтернативному способу.К вашему сведению: я использую https://regex101.com/ тестер.
Заранее спасибо!
(1) Совпадение, если:
(a)… число не менее 6 и не более 10 цифрНапример,
1234567
1234567891
1234567890 1234567890
ОК,я думаю, что это \ d [0-9] {5,9}
И
(b)… следующий символ - полный останов, пробел или косая черта, например
12 3456789012. Полные остановки
12 3456789012 Пробел
12 3456789012 / 2019 Косая черта
ОК, я думаю, что это \ d [0-9] {5,9} плюс позитивный прогноз, значит \ d [0-9] {5,9} (? = |. | /)
(2) Нет соответствия, если…:
(a)… строка является частью строки, в которой в качестве предшественника используется запятая или плюс, например,
, 1234567890
+ 1234567890
К сожалению, для активации надстроек Office Microsoft допускает только упреждающие утверждения в регулярных выражениях, но не опосредованные, (? <= Text) и отрицательный look-b.ehind.Есть ли какой-нибудь альтернативный способ? </p>
(b)… следующий символ - #, например,
1234567890 #
(c)… международный телефонный номер найден. + (?: [0-9]?) {6,14} [0-9] «/> и ^ + (?: [0-9] ⋅?) {6,14} [0-9] $, чтобы соответствовать международным телефонным номерам, ноопять же не знаю, как поместить это в строку, чтобы использовать это для исключения.То, что я пытаюсь использовать в качестве основы для несоответствия, заключается в следующем (основываясь на том, как я нашел телефонные номера, обычно записанные в электронных письмах моего клиента):
До 4 элементов группы номеров, первый элемент которой начинается с+ или 00, за которыми следуют одна, две или три цифры, например
+ 1 1234567890
+ 49 1234567890
+ 353 1234567890
Найдено следующее утверждениево время моего исследования, чтобы достичь этого, но опять же не знаю, где поместить его в строку: + [0-9] {1,} | 0) [1-9] {2,} | 0) [1-9] {3,}…
Также:
+ 49 12 3456789012 2x Blank
+ 49 12 345 6789012 3x Blank
Вместо пустых групп сследующие символы также могут привести к несоответствию.
+ 49-12-345-6789012 Минус
+ 49/12/345/6789012 Косая черта
(d)…Другие форматы телефонных номеров, начинающиеся с 0
До 4 элементов группы номеров, первый элемент которой начинается с 0, за которым следуют три или четыре цифры, например,
0151 1234567890
02351 1234567890
Вместо пробелов группы со следующими символами также должны приводить к несовпадению.
0151-1234567890 Минус
0151 /1234567890 Косая черта