как перезагрузить питонскую службу на centos 7?

Еще один простой, но эффективный метод заключается в том, чтобы повторно использовать split + join.

"a=b,c:d".split('=').join(',').split(':').join(',').split(',')

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

. Результат выражения:

['a', 'b', 'c', 'd']

. Расширяясь на этом, вы также можете поместить его в функцию:

function splitMulti(str, tokens){
        var tempChar = tokens[0]; // We can use the first token as a temporary join character
        for(var i = 1; i < tokens.length; i++){
            str = str.split(tokens[i]).join(tempChar);
        }
        str = str.split(tempChar);
        return str;
}

Использование:

splitMulti('a=b,c:d', ['=', ',', ':']) // ["a", "b", "c", "d"]

Если вы используете эту функцию много, возможно, стоит даже рассмотреть возможность упаковки String.prototype.split для удобства (я думаю, что моя функция достаточно безопасна - единственное соображение дополнительные служебные данные условных выражений (minor) и тот факт, что ему не хватает реализации предельного аргумента, если массив передан).

Обязательно включите функцию splitMulti, если использовать этот подход к ниже просто обертывает его :). Также стоит отметить, что некоторые люди недовольны расширением встроенных модулей (поскольку многие люди делают это неправильно, и могут возникать конфликты), поэтому, если сомневаетесь, поговорите с кем-то старше, прежде чем использовать это или спросите о SO :)

    var splitOrig = String.prototype.split; // Maintain a reference to inbuilt fn
    String.prototype.split = function (){
        if(arguments[0].length > 0){
            if(Object.prototype.toString.call(arguments[0]) == "[object Array]" ) { // Check if our separator is an array
                return splitMulti(this, arguments[0]);  // Call splitMulti
            }
        }
        return splitOrig.apply(this, arguments); // Call original split maintaining context
    };

Использование:

var a = "a=b,c:d";
    a.split(['=', ',', ':']); // ["a", "b", "c", "d"]

// Test to check that the built-in split still works (although our wrapper wouldn't work if it didn't as it depends on it :P)
        a.split('='); // ["a", "b,c:d"] 

Наслаждайтесь!

1
задан mahshid.r 13 July 2018 в 18:47
поделиться