PowerShell匹配字符串末尾-v模式并提取前缀内容求助
提取指定字符串前缀的解决方案
你可以通过正则捕获组或者字符串分割的方式,快速提取目标前缀,以下是具体实现:
正则捕获组方案
核心思路是用正则匹配末尾的-v数字模式,同时通过捕获组提取前面的前缀内容。
Python 代码示例
import re target_strings = ["dep-value-sync-excess-v12", "dep-value-sync-excess-v100"] # 正则:匹配开头到-v前的内容作为捕获组,末尾匹配-v+数字 pattern = r"^(.*)-v\d+$" for s in target_strings: match_result = re.match(pattern, s) if match_result: print(match_result.group(1)) # 输出:dep-value-sync-excess
JavaScript 代码示例
const targetStrings = ["dep-value-sync-excess-v12", "dep-value-sync-excess-v100"]; const pattern = /^(.*)-v\d+$/; targetStrings.forEach(str => { const match = str.match(pattern); if (match) { console.log(match[1]); // 输出:dep-value-sync-excess } });
字符串分割方案
如果确定字符串格式固定为前缀-v数字,可以通过从最后一个-v位置截断的方式提取前缀:
Python 代码示例
target_strings = ["dep-value-sync-excess-v12", "dep-value-sync-excess-v100"] for s in target_strings: # 从最后一个"-v"处分割,取前半部分 prefix = s.rsplit("-v", 1)[0] print(prefix)
JavaScript 代码示例
const targetStrings = ["dep-value-sync-excess-v12", "dep-value-sync-excess-v100"]; targetStrings.forEach(str => { const parts = str.split("-v"); // 拼接除最后一部分外的所有内容(处理前缀中可能含"-v"的情况) const prefix = parts.slice(0, -1).join("-v"); console.log(prefix); });
内容的提问来源于stack exchange,提问作者wehelpdox
相关产品推荐
相关产品推荐

