Регулярное выражение: как найти слово, которое не заканчивается конкретным символом

Я хотел бы сопоставить целое "слово" - слово, которое начинается с символа числа и может включать специальные символы, но не заканчиваться "%".

Сопоставьте эти:

  • 112 (целые числа)
  • 10-12 (диапазоны)
  • 11/2 (дроби)
  • 11,2 (десятичные числа)
  • 1,200 (разделитель тысяч)

, но не

  • 12% (проценты)
  • A38 (слова, начинающиеся с буквенного символа)

Я пробовал эти регулярные выражения:

(\b\p{N}\S)*)

, но это возвращает '12% 'в' 12% '

(\b\p{N}(?:(?!%)\S)*)

, но это возвращает' 12 'в' 12% '

Могу ли я сделать исключение из условия \ S , которое игнорирует % ? { {1}} Или придется сделать что-то еще?

Я буду использовать его в PHP, но просто напишите, как хотите, и я конвертирую его в PHP.

5
задан ladaghini 18 November 2011 в 11:19
поделиться