Я думаю, что самый простой способ сопоставления символов, таких как
\^$.?*|+()[
, использует классы символов изнутри R. Рассмотрим, как очистить заголовки столбцов от файла данных, которые могут содержать пробелы и пунктуацию characters:
> library(stringr)
> colnames(order_table) <- str_replace_all(colnames(order_table),"[:punct:]|[:space:]","")
Этот подход позволяет нам вводить классы символов в соответствие с символами пунктуации, в дополнение к символам пробелов, что вам обычно нужно было бы избежать с помощью \\
для обнаружения. Вы можете узнать больше о классах символов в этой таблице ниже, и вы также можете ввести ?regexp
, чтобы узнать больше об этом.
https://www.rstudio.com/wp -поперечник / добавления / 2016/09 / RegExCheatsheet.pdf
Проверьте опции парсинга раздела от произвольной строки в странице справочника для Getopt:: Долго, я думаю, что это делает точно, что Вы ищете.
Вместо того, чтобы разделить на пробеле, используйте встроенную функцию шарика. В дополнение к разделению на пробеле, который сделает стандартные расширения командной строки, затем возвращают список. (Например, * дал бы список файлов, и т.д.), я также рекомендую локализовать @ARG на общем принципе.
Кроме этого, это - единственный способ, которым можно сделать это, не переписывая GetOptions. (Очевидно я должен прочитать документацию более тщательно.)
Когда Вы используете Getopt:: Долго на чем-то другом, чем ввод данных пользователем, знать, что некоторые функции отличаются на основе переменной среды POSIXLY_CORRECT. Можно переопределить это с соответствующим вызовом для Конфигурирования.
Ничего себе!!!
Я думаю, что могу использовать оба из bentilly и ответов dinomite и сделать следующее:
Код может посмотреть что-то как...
GetOptionsFromArray ([glob ($input_line)]);
И это - только одна строка.. прохладный (я знаю, что должен сделать некоторую проверку ошибок и т.д.).. но его прохладное...
На методы кажется, что GetOptionsFromArray и GetOptionsFromString были добавлены только в v2.36 и поскольку Murphy скажет, что у меня есть версия 2.35 только.
На данный момент я думаю, что должен буду жить с локальным @ARGV.