Это то, с чем я сталкиваюсь регулярно, & amp; Я обобщил приведенный выше сценарий Вольфганг для работы с любой ветвью
. Я также добавил приглашение «вы уверены», & amp; выход обратной связи
#!/bin/bash
# reset the current repository
# WF 2012-10-15
# AT 2012-11-09
# see http://stackoverflow.com/questions/1628088/how-to-reset-my-local-repository-to-be-just-like-the-remote-repository-head
timestamp=`date "+%Y-%m-%d-%H_%M_%S"`
branchname=`git rev-parse --symbolic-full-name --abbrev-ref HEAD`
read -p "Reset branch $branchname to origin (y/n)? "
[ "$REPLY" != "y" ] ||
echo "about to auto-commit any changes"
git commit -a -m "auto commit at $timestamp"
if [ $? -eq 0 ]
then
echo "Creating backup auto-save branch: auto-save-$branchname-at-$timestamp"
git branch "auto-save-$branchname-at-$timestamp"
fi
echo "now resetting to origin/$branchname"
git fetch origin
git reset --hard origin/$branchname
Здесь вы идете:
preg_split('/([^.:!?]+[.:!?]+)/', 'good:news.everyone!', -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
Как это работает: шаблон фактически превращает все в разделитель. Затем, чтобы включить эти разделители в массив, вы можете использовать константу PREG_SPLIT_DELIM_CAPTURE
. Это вернет массив вроде:
array (
0 => '',
1 => 'good:',
2 => '',
3 => 'news.',
4 => '',
5 => 'everyone!',
6 => '',
);
Чтобы избавиться от пустых значений, используйте PREG_SPLIT_NO_EMPTY
. Чтобы объединить две или более из этих констант, мы используем побитовый оператор |
. Результат:
array (
0 => 'good:',
1 => 'news.',
2 => 'everyone!'
);
Не использовать для PREG_SPLIT_DELIM_CAPTURE
, если вы используете положительный lookbehind в своем шаблоне. Функция будет хранить разделители.
$text = preg_split('/(?<=[.:!?])/', 'good:news.everyone!', 0, PREG_SPLIT_NO_EMPTY);
Если вы используете lookbehind
, он просто ищет символ без его соответствия. Таким образом, в случае preg_split()
функция не будет отбрасывать символ.
Результат без флага PREG_SPLIT_NO_EMPTY
:
array (
0 => 'good:',
1 => 'news.',
2 => 'everyone!',
3 => ''
);
Результат с флагом PREG_SPLIT_NO_EMPTY
:
array (
0 => 'good:',
1 => 'news.',
2 => 'everyone!'
);
Вы можете протестировать его с помощью этого PHP Online Function Tester .