Regex, как сопоставить строки, начинающиеся с не цифр - PullRequest
0 голосов
/ 25 октября 2019

Я новичок в Regex. Когда я пытался выбрать строки, начинающиеся с нецифрового символа в этом тестовом файле ,

1 2012-01-01 12:00:00
2 2013-01-01 13:00:00
3 2012asdas
4 asdasasad

, я попытался /^\D и получил то, что хотел:

1 2012-01-01 12:00:00
2 2013-01-01 13:00:00
3 2012asdas
4 **a**sdasasad

Тогда мне было любопытно, могу ли я выполнить ту же самую работу с /^[^\d], но она просто соответствует всем строкам :

1 **2**012-01-01 12:00:00
2 **2**013-01-01 13:00:00
3 **2**012asdas
4 **a**sdasasad

Затем я попытался /^[^\w] иполучил тот же результат. Таким образом, я думаю, какая часть регулярного выражения является неправильной. Вопрос может быть тривиальным, но любая обратная связь приветствуется.

1 Ответ

0 голосов
/ 25 октября 2019

Вот объяснение:

  • \d соответствует 1 цифре
  • \D соответствует всему, что не является цифрой
  • \d+ соответствует несколькимцифры
  • [\d] соответствуют всем символам в скобках, которые являются цифрами
  • [^\d] соответствуют всем символам, которые не заключены в скобки, поэтому без цифр
  • [\D]продукты имеют тот же результат, что и выше
  • ^ соответствует началу строки

, поэтому ^\D+ будет соответствовать строке, начинающейся с цифр

Вы должны попробоватьэто действительно мощный тестер регулярных выражений здесь: https://regex101.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...