колотить regex с кавычками?

72
задан codeforester 12 February 2018 в 17:03
поделиться

1 ответ

Это было изменено между 3,1 и 3.2 . Угадайте, что для усовершенствованного руководства нужно обновление.

Это - краткое описание новых опций, добавленных к удару 3.2 начиная с выпуска удара 3.1. Как всегда, страница руководства (doc/bash.1) является местом для поиска полных описаний.

  1. Новые возможности в надрезе Bash

f. При заключении в кавычки аргумента строки к [[команда = ~ оператор теперь вызывает сопоставление строк, как с другими операторами сопоставления с образцом.

Печально это повредит существующую кавычку с помощью сценариев, если у Вас не было понимания, чтобы сохранить шаблоны в переменных и использовать их вместо regexes непосредственно. Пример ниже.

$ bash --version
GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
$ number=2
$ if [[ $number =~ "[0-9]" ]]; then echo match; fi
$ if [[ $number =~ [0-9] ]]; then echo match; fi
match
$ re="[0-9]"
$ if [[ $number =~ $re ]]; then echo MATCH; fi
MATCH

$ bash --version
GNU bash, version 3.00.0(1)-release (i586-suse-linux)
Copyright (C) 2004 Free Software Foundation, Inc.
$ number=2
$ if [[ $number =~ "[0-9]" ]]; then echo match; fi
match
$ if [[ "$number" =~ [0-9] ]]; then echo match; fi
match
112
ответ дан Vinko Vrsalovic 24 November 2019 в 12:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: