git config --global core.autocrlf false
<?php
$str = '哈hhee12_!@#$%^&*';
// 分割字符串
// 暂时还不知道这两种有什么区别
$result = preg_split('/(?<!^)(?!$)/u', $str);
$result1 = preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY);
(?<!expr)
和(?!expr)
都是零宽断言,前者表示此位置之前不匹配expr,后者表示此位置之后不匹配expr。
在正则中^和$单独用表示开头和末尾。
也就是说(?<!^)
表示此位置之前不匹配开头,(?!$)
表示此位置之后不匹配末尾。
所以这个split匹配到的部分,为每两个字的中间位置(但是没有匹配到任何实际的字符)。
$ docker inspect {container_id} | grep Mounts -A 20
v4.6.1
版本可用
Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4
docker启动不起来,查看日志错误内容如下:
$ docker logs -f go-advertise
"no such file or directory"
$ docker logs -f go-advertise standard_init_linux.go:211: exec user process caused "no such file or directory"
因为我是在Windows环境下,启动脚本是
run.sh
。打开git bash
,设置fileformat
为unix
。$ vim run/sh :set ff=unix
创建不了文件夹
$ docker logs -f go-advertise mkdir: can't create directory '/data/logs/': No such file or directory /run.sh: line 3: can't create /data/nginx/log/go-advertise.error.log: nonexistent directory
入口文件是
run.sh
,代码如下:#!/bin/sh mkdir -p /data/logs/golang/ ./go-advertise start -env=dev >> /data/nginx/log/go-advertise.error.log 2>&1
我在
Dockerfile
创建日志目录RUN mkdir -p /data/nginx/log && \n mkdir -p /data/logs/golang/ && \n touch /data/nginx/log/go-advertise.error.log
参考链接:docker启动报错:standard_init_linux.go:211: exec user process caused "no such file or directory"