У меня есть пара регулярных выражений, которые я планирую объединить. Итак, первое регулярное выражение выглядит следующим образом (позволяет суммы с определенными разделителями тысяч и десятичными разделителями)
"^-?(\\d+|\\d{1,3}(,\\d{3})*)?(\\.(\\d+)?)?$"
У меня есть аналогичные другие регулярные выражения (на основе разных языков, например, в другом будет запятая в качестве десятичного разделителя)
Итак, с указанным выше регулярным выражением ниже приведены допустимые / недопустимые значения
123.11 (Valid)
1'23 (Invalid)
Со вторым регулярным выражением я хочу, чтобы строка могла содержать максимум 13 цифр (включая до или после десятичной дроби)
^[^\\d]*?(\\d|\\d[^\\d]+){0,13}$
В приведенном выше регулярном выражении следующие допустимые / недопустимые значения:
1234567890123 (Valid - 13 digits)
12345678901234 (Invalid - 14 digits)
1234567890.123 (Valid as 13 digits...10.3)
1234567890.1234 (Invalid as 14 digits...10.4)
Можно ли каким-то образом объединить 2 регулярных выражения? Однако я не хочу трогать первое регулярное выражение (иметь разные комбинации в зависимости от разных языков). Но было бы неплохо как-то динамически добавить 2-е регулярное выражение в первое?
Итак, я могу гибко использовать второе регулярное выражение, поскольку оно не основано ни на каком языковом стандарте, но всегда будет одинаковым и в основном проверяет максимум 13 цифр в строке. Затем я проверю свою строку с помощью консолидированного регулярного выражения.