regex - 如何替换除最后一位数字以外的所有字符
问题描述
我试图用一个句点替换-r
这个语义版本2020.7.28-r5
中的 ,但我得到了这个2020.7.28.
。
到目前为止,这是我想出的:
"2020.7.28-r5" -replace "(-[A-Za-z-][0-9A-Za-z-]*)", "."
规格:
r
将始终是一个或多个字符(在这种情况下简单地r
)r
可以是任何 SemVer 合法字符 ([0-9A-Za-z-]
)r
总是以字符结尾,而不是数字r
总是以连字符开头-
- 最终数字(当天的内部版本号)将始终为一位或多位数字
基于这个答案,我尝试了这个表达:
"(-[A-Za-z-][0-9A-Za-z-]*)(?=\d{4})"
但它并没有取代任何东西。
我怎样才能开始2020.7.28-The11thFantasticallyCleverUpdateForTheDay11
和结束2020.7.28.11
?
解决方案
您可以使用
-replace '-[A-Z][0-9A-Z]*?(\d+)$', '.$1'
请参阅正则表达式演示。请注意 PS 正则表达式默认不区分大小写,[A-Z]
足以匹配所有 ASCII 字母。
细节
-
- 一个连字符[A-Z]
- 任何 ASCII 字母[0-9A-Z]*?
- 零个或多个数字或字母(\d+)
- 第 1 组($1
指此值):一位或多位数字$
- 字符串结束。
推荐阅读
- python - 如何制作使用多个 python 环境的工作流
- javascript - AmCharts 4 甜甜圈图 - 自定义 URL 的超链接
- node.js - 节点:从应用程序的 package.json 获取设置
- javascript - I need to console log my anser and not just return it
- javascript - 将时钟指针设置为所需度数的数学背后的解释是什么?
- c# - 用户无法访问的 UWP 文件存储
- jmeter - 如何使 openapi-generator 更改默认 JMeter 变量、CSV 内容?
- swift - 为什么我的 2d 图像在使用 ARKit 显示时会改变大小?
- r - 如何断开 Rblpapi::blpConnect()
- kotlin - 如何传递继承基类并实现接口的参数?