#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… так что с самого начала это было правильно… но проблема с пространством все еще существует…