grunt-version 中的正则表达式
Regex in grunt-version
我正在尝试使用 grunt-version
来提升我的 PHP WordPress 插件项目的版本。试了好久都失败了
在我的插件文件中 example.php
我有一个 PHP 变量表示项目版本:
public $version = '0.3.4';
我需要匹配字符串,这样我也可以在这里修改版本。
我试过了:
prefix: 'public\s$version\s='
从 regex101.com 开始,它完全匹配字符串。版本号部分完全由grunt插件处理。
但是 grunt version::patch
说:
Pattern not found in file
Path: example.php
Pattern: /(publics$versions=s)([0-9a-zA-Z\-_\+\.]+)/g
所以我将模式修改为:
prefix: 'public/\s$version/\s=/\s'
但不匹配:
Pattern: /(public\/s$version\/s=\/s)([0-9a-zA-Z\-_\+\.]+)/g
尽管如此,以下模式在同一个文件中工作正常:
prefix: 'Version:\s+'
并且在插件中很好地提升了版本 header:
Version: 0.3.4
所以我尝试了:
prefix: 'public $version =\s+'
但运气不好:
Pattern: /(public $version =\s+)([0-9a-zA-Z\-_\+\.]+)/g
仅供参考,我的 Gruntfile 声明如下所示:
version: {
pluginVersion: {
options: {
prefix: 'Version:\s+'
},
src: [
'example.php'
]
},
pluginVariable: {
options: {
prefix: 'public $version =\s+'
},
src: [
'example.php'
]
},
packageJson: {
src: [
'package.json'
]
}
},
编辑
不用说,默认模式 ('[^\-]version[\'"]?\s*[:=]\s*[\'"]'
) 也在更改一些不需要的版本。喜欢:
public $wp_version = '0.3.0';
可以用这个正则表达式来匹配:public\s?$version\s?=\s?'
(public\s+\$version\s+=\s+\'
转义)
对于那些希望将其与 style.css and/or 插件文件一起使用的人:
version: {
project: {
options: {
release: 'patch',
prefix: '\s*([^\w][\'"]?[v|V]{1}ersion[\'"]?\s*[:=]\s*[\'"]?)'
},
src: ['package.json', 'style.css']
}
}
确保您注册了您的任务(根据文档)
grunt.loadNpmTasks('grunt-version');
然后你可以运行这样的任务
grunt version
我正在尝试使用 grunt-version
来提升我的 PHP WordPress 插件项目的版本。试了好久都失败了
在我的插件文件中 example.php
我有一个 PHP 变量表示项目版本:
public $version = '0.3.4';
我需要匹配字符串,这样我也可以在这里修改版本。
我试过了:
prefix: 'public\s$version\s='
从 regex101.com 开始,它完全匹配字符串。版本号部分完全由grunt插件处理。
但是 grunt version::patch
说:
Pattern not found in file
Path: example.php
Pattern:/(publics$versions=s)([0-9a-zA-Z\-_\+\.]+)/g
所以我将模式修改为:
prefix: 'public/\s$version/\s=/\s'
但不匹配:
Pattern:
/(public\/s$version\/s=\/s)([0-9a-zA-Z\-_\+\.]+)/g
尽管如此,以下模式在同一个文件中工作正常:
prefix: 'Version:\s+'
并且在插件中很好地提升了版本 header:
Version: 0.3.4
所以我尝试了:
prefix: 'public $version =\s+'
但运气不好:
Pattern:
/(public $version =\s+)([0-9a-zA-Z\-_\+\.]+)/g
仅供参考,我的 Gruntfile 声明如下所示:
version: {
pluginVersion: {
options: {
prefix: 'Version:\s+'
},
src: [
'example.php'
]
},
pluginVariable: {
options: {
prefix: 'public $version =\s+'
},
src: [
'example.php'
]
},
packageJson: {
src: [
'package.json'
]
}
},
编辑
不用说,默认模式 ('[^\-]version[\'"]?\s*[:=]\s*[\'"]'
) 也在更改一些不需要的版本。喜欢:
public $wp_version = '0.3.0';
可以用这个正则表达式来匹配:public\s?$version\s?=\s?'
(public\s+\$version\s+=\s+\'
转义)
对于那些希望将其与 style.css and/or 插件文件一起使用的人:
version: {
project: {
options: {
release: 'patch',
prefix: '\s*([^\w][\'"]?[v|V]{1}ersion[\'"]?\s*[:=]\s*[\'"]?)'
},
src: ['package.json', 'style.css']
}
}
确保您注册了您的任务(根据文档)
grunt.loadNpmTasks('grunt-version');
然后你可以运行这样的任务
grunt version