如何用正则表达式替换指定字符?CONSTANT后斜杠替换方案
正则实现:替换CONSTANT后的第一个斜杠为星号
核心正则方案
使用以下正则匹配目标内容,替换时保留捕获组并将斜杠替换为星号:
正则模式:(CONSTANT[^\/]*)\/
替换模板:$1*
正则逻辑说明
CONSTANT:精准匹配固定标识字符串[^\/]*:匹配CONSTANT之后到第一个斜杠前的所有非斜杠字符([^\/]排除斜杠,*允许零个或多个字符)\/:定位要替换的第一个斜杠- 分组
(CONSTANT[^\/]*)会保留CONSTANT到斜杠前的内容,替换时用$1*完成斜杠到星号的替换
示例演示
原始URL:
http://localhost:7070/home/test/mobile:device.testdevice.id1_123.id2_456.id3_ab-c.CONSTANT_formula:map/TreeMap.json
替换后结果:
http://localhost:7070/home/test/mobile:device.testdevice.id1_123.id2_456.id3_ab-c.CONSTANT_formula:map*TreeMap.json
常见语言用法示例
JavaScript
const originalUrl = "http://localhost:7070/home/test/mobile:device.testdevice.id1_123.id2_456.id3_ab-c.CONSTANT_formula:map/TreeMap.json"; const updatedUrl = originalUrl.replace(/(CONSTANT[^\/]*)\//, "$1*");
Python
import re original_url = "http://localhost:7070/home/test/mobile:device.testdevice.id1_123.id2_456.id3_ab-c.CONSTANT_formula:map/TreeMap.json" updated_url = re.sub(r'(CONSTANT[^/]*)\/', r'\1*', original_url)
原正则问题说明
你之前使用的^CONSTANT(.+)存在两个问题:
^锚定字符串开头,但CONSTANT位于URL中间,无法匹配目标位置.+会匹配CONSTANT之后的所有内容(包括所有斜杠),导致替换范围不符合需求
内容的提问来源于stack exchange,提问作者Mario R
相关产品推荐
相关产品推荐

