Подтвердить что ты не робот

Regex только числа и точка или запятая

Мне нужно регулярное выражение для валидации two or one чисел, затем , или . и снова two or one номеров.

Итак, это допустимые входы:

11,11  
11.11  
1.1  
1,1  
4b9b3361

Ответ 1

\d{1,2}[\,\.]{1}\d{1,2}

EDIT: обновление для удовлетворения новых требований (комментарии);)
EDIT: удалить ненужный qtfier согласно Bryan

^[0-9]{1,2}([,.][0-9]{1,2})?$

Ответ 2

Чтобы представить одну цифру в виде регулярного выражения, вы можете использовать либо:

[0-9] или \d

Чтобы указать, сколько раз появится число, вы должны добавить

[0-9] *: звезда означает, что есть ноль или более цифр

[0-9] {2}: {N} означает N цифр

[0-9] {0,2}: {N, M} N цифр или M цифр

[0-9] {0-9}: {N-M} N цифр до M цифр. Примечание: M можно оставить пустым для бесконечного представления

Предположим, что я хочу представить число от 1 до 99, я бы сказал следующее:

[0-9] {1-2} или [0-9] {1,2} или \d {1-2} или \d {1,2}

Или скажем, что мы работали с двоичным отображением, отображая размер байта, мы бы хотели, чтобы наши цифры находились между 0 и 1 и длиной байта размером 8, поэтому мы будем представлять его следующим образом:

[0-1] {8} представление двоичного байта

Затем, если вы хотите добавить a или a. символ, который вы использовали бы:

\, или \. или вы можете использовать [.] или [,]

Вы также можете указать выбор между возможными значениями как

[.,] означает либо точку, либо запятую

И вам просто нужно объединить фрагменты вместе, поэтому в случае, когда вы хотите представить 1 или 2-значное число, за которым следует либо запятая, либо период, а затем еще две цифры, вы должны выразить это следующим образом: >

[0-9] {1,2} [.,]\{D} 1-2

Также обратите внимание, что строки регулярных выражений внутри строк С++ должны быть двойными, так что каждый\становится\\

Ответ 3

\d означает цифру на большинстве языков. Вы также можете использовать [0-9] на всех языках. Для "периода или запятой" используйте [\.,]. В зависимости от вашего языка вам может потребоваться больше обратных косых черт, исходя из того, как вы цитируете выражение. В конечном счете, движок регулярных выражений должен видеть одиночную обратную косую черту.

* означает "нуль или больше", поэтому \d* и [0-9]* означают "ноль или больше чисел". ? означает "нуль-один". Ни один из этих квалификаторов не означает ровно один. Большинство языков также позволяют использовать {m,n} для обозначения "между m и n" (т.е.: {1,2} означает "от 1 до 2" )

Так как точка или запятая и дополнительные номера являются необязательными, вы можете поместить их в группу и использовать квантор ? для обозначения "нуль-один" этой группы.

Объединяя все это, вы можете использовать:

\d{1,2}([\.,][\d{1,2}])?

Значение, одна или две цифры \d{1,2}, за которой следует ноль или одна из группы (...)?, состоящая из точки или запятой, за которой следует одна или две цифры [\.,]\d{1,2}

Ответ 4

\d{1,2}[,.]\d{1,2}

\ d означает цифру, {1,2} часть означает 1 или 2 предыдущего символа (\ d в этом случае), а часть [,.] означает запятую или точку.

Ответ 5

Если вы хотите быть очень разрешительным, требуется только две последние цифры с запятой или точкой:

^([,.\d]+)([,.]\d{2})$

Ответ 6

Самое короткое регулярное выражение, которое я знаю

^\d\d?[,.]\d\d?$

^ И $ означают начало и конец входной строки (без этой части 23,45 строки, подобной 123,45, будут сопоставлены). \D означает цифру, \d? означает необязательную цифру, [,.] означает точку или запятую. Рабочий пример (когда вы нажимаете на левое меню> инструменты> генератор кода, вы можете генерировать код для одного из 9 популярных языков, таких как С#, js, php, java,...) здесь.

Ответ 7

Что если у меня их много? Скажи 1.1.1.2