Эта строка будет соответствовать ведущим нулям и десятичным знакам, но только если все значение превышает 954. Таким образом, оно будет соответствовать 955.62 и 0001253.125, но не 00954.999 или 125.967. regex101 Чтобы разбить его: e2: e2: регулярное выражение было завернуто в EDIT1: Забыл сделать мой. Литерал. EDIT2: внесенные изменения, отмеченные знаком «e2:» \b(?
(? говорит, что он не соответствует, если есть период непосредственно перед номером. Это необходимо, чтобы избежать совпадения таких вещей, как 0.957.
0*
был добавлен, чтобы выполнить полное совпадение с ведущими нулями (?:[1-9]\d{3,}|9(?:[6-9]\d|5[5-9]))
устанавливает соответствие для всего существенного слева от десятичной точки. [1-9]\d{3,}
соответствует любому числу, равному или превышающему 1000. Другая сторона | (или оператор), 9(?:[6-9]\d|5[5-9])
соответствует любым числам в 900s с другим или вложенным внутри. Внутренний или будет соответствовать, когда десятки и цифры - 60-99 или 55-59. (?:\.\d+)?
- это оператор, который соответствует десятичным знакам. ? в конце делает его необязательным, чтобы он соответствовал числам, которые не имеют десятичных точек в них. \b
s, чтобы убедиться, что это его собственное слово. Регулярное выражение больше не будет соответствовать so1337, the769s или 960things.