Регулярное выражение для соответствия от 0 до 9 арабским int

#regex

#регулярное выражение

Вопрос:

Я ищу регулярное выражение, которое допускает только арабские целые числа от 0 до 9 (без пробелов, десятичных знаков, ничего… просто цифры от 0 до 9). Я использую это как часть функции replace, поэтому на самом деле я хочу искать все, что не соответствует критериям от 0 до 9 арабских значений int, и удалять это.

Я использую следующее регулярное выражение, но оно оставляет пробелы, и я не уверен, допускает ли оно только арабские целые числа.

 [^0-9] $
  

Есть идеи, как это изменить?

Ответ №1:

Если вы используете регулярное выражение для проверки строки, ваше ^ должно быть вне квадратных скобок. Наличие его внутри означает «найти символы, которые не от 0 до 9″. Наличие его снаружи делает его начальной привязкой.

 ^[0-9] $
  

РЕДАКТИРОВАТЬ: если вы выполняете замену регулярного выражения, удалите $ , чтобы вы могли удалять нецелые числа, которые находятся в любом месте строки:

 [^0-9] 
  

Комментарии:

1. это все еще не удаляет пробел … :/ 1234 5678 возвращается как 1234 5678 с сохраненным пробелом… Я использую функцию rereplace()

2. @Mohamad: А, тогда это все меняет… смотрите мой отредактированный ответ.

3. Да… Теперь я чувствую себя глупо… что, поскольку я использую функцию перезаписи, моя функция искала соответствие всему, что не от 0 до 9… так что с самого начала это было правильно… но проблема с пространством все еще существует…