该脚本使用GIT-POSH归档工作目录,并使用Windows Powershell SSH模块将其发送到Linux Apache服务器。
为方便起见,该脚本还需要报告本地计算机和Apache服务器上的现有文件。
这是我需要字符串操作来分隔命名约定中的每个块的地方。
我打算使用下划线block_block
,直到我意识到某些块已经包含下划线。
这时我决定用括号[block][block]
在PHP中,我会使用preg_split将每个部分拉成一个关联数组。
[product][branch_name][date][time][commit_hash]
--> Get-Product $string
--> product123
--> Get-Branch $string
--> branch123
preg_split
这个字符串的方式相同?答案 0 :(得分:1)
PHP的preg_split
可以与System.RegularExpressions.Split()
一起模仿。有一些警告,即Split()
将为其替换的标记返回空字符串,因此需要进行一些过滤。像这样,
$data = "[product][branch_name][date][time][commit_hash]"
$arr = [Regex]::Split($data, "[\[\]]") | ? { $_.length -gt 0 }
$arr
输出:
product
branch_name
date
time
commit_hash
如果没有过滤子句? { $_.length -gt 0 }
- 它将排除长度为零的字符串对象 - 输出会略有不同:
product
branch_name
date
time
commit_hash
MSDN中的此行为is documented。