У меня есть код регулярного выражения
https://regex101.com/r/o5gdDt/8
Как вы видите этот код
(?<!\S)(?<![\d,])(?:(?!(?:1[2-9]\d\d|20[01]\d|2020))\d{4,}[\u00BC-\u00BE\u2150-\u215E]?|\d{1,3}(?:,\d{3})+)(?![\d,])[\u00BC-\u00BE\u2150-\u215E]?(?!x)(?!/)
может захватывать все цифры, которые разделены на 3 цифры в тексте, как
- "здесь 100,100"
- "23,456"
- "1,435"
все более 4 цифр, как без запятой
и этот тип номера
Единственная крошечная проблема заключается в том, что после запятой (точка)Первые два типа он не может захватить тех. например, он не может захватить
- "здесь 100,100",
- "23,456,"
- "1,435,"
к сожалению, есть несколько чисел intext, которые заканчиваются запятыми ... может кто-нибудь подскажет, как изменить это, чтобы захватить выше?
Я пытался сделать это, и измененная версия такова:
(?<!\S)(?<![\d,])(?:(?!(?:1[2-9]\d\d|20[01]\d|2020))\d{4,}[\u00BC-\u00BE\u2150-\u215E]?|\d{1,3}(?:,\d{3})+)(?![\d])[\u00BC-\u00BE\u2150-\u215E]?(?!x)(?!/)
в основном я удаляю запятую в (?! [\ D,]), но это вызывает другую проблему в моем контексте, она захватывает часть числа, которая является частью уравнения, например:
4 310 747 475х2 57 349 565 416 398х.
см. Здесь:
https://regex101.com/r/o5gdDt/10
Я знаю, что это особенный вопрос, я был бы рад узнать ваши иды