javascript - 用同一行开头的匹配替换一行上的所有斜杠
问题描述
我正在尝试更改一行上的所有斜杠以替换为每行开头的 3 个字符块。(以下示例中的 PMC、PAJ 等)
. PMC .89569XX/90051XX/90204XX/89533XX/90554XX/90053XX/90215XX/89874XX/89974XX/90481XX/90221XX/90508XX/90183XX/88526XX/89843XX/88041XX/90446XX/88515XX/89574XX/89847XX/88616XX/90513XX/90015XX/90334XX/ 89649XX.T00
。PAJ .77998XX/77896XX.T00。PAG .78116XX/78104XX/77682XX/07616XX/77663XX/77863XX/07634XX/78088XX/77746XX/78148XX.T00。PKC .22762XX/22358XX/22055XX/22672XX/22684XX/22154XX/22608XX/22768XX/22632XX/22266XX/22714XX/22658XX/22631XX/22288XX/22020XX/22735XX/22269XX/22138XX/22331XX/22387XX/22070XX/22636XX/22629XX/22487XX/ 22725XX.T00
期望的结果应该是:
PMC.89569XXPMC90051XXPMC90204XXPMC89533XXPMC90554XXPMC90053XXPMC90215XXPMC89874XXPMC89974XXPMC90481XXPMC90221XXPMC90508XXPMC90183XXPMC88526XXPMC89843XXPMC88041XXPMC90446XXPMC88515XXPMC89574XXPMC89847XXPMC88616XXPMC90513XXPMC90015XXPMC90334XXPMC89649XX.T00
我不确定如何做到这一点。这是我到目前为止所拥有的:
(.)([A-Z]{3})(.)(\/)
解决方案
如果您只计划支持 ECMAScript 2018 及更高版本,则可以使用单个正则表达式来实现您所需要的:
.replace(/(?<=^\.([^.]+)\..*?)\//g, "$1")
请参阅正则表达式演示。
细节
(?<=^\.([^.]+)\..*?)
- 一个积极的向后看,紧靠当前位置的左侧,需要^
- 字符串的开始\.
- 一个点([^.]+)
- 第 1 组:一个或多个除点以外的字符\.
- 一个点.*?
- 任何 0+ 字符,除了换行符,尽可能少
\/
- 一个/
字符。
JS 演示:
var strs = ['.PMC.89569XX/90051XX/90204XX/89533XX/90554XX/90053XX/90215XX/89874XX/89974XX/90481XX/90221XX/90508XX/90183XX/88526XX/89843XX/88041XX/90446XX/88515XX/89574XX/89847XX/88616XX/90513XX/90015XX/90334XX/89649XX.T00','.PAJ.77998XX/77896XX.T00','.PAG.78116XX/78104XX/77682XX/07616XX/77663XX/77863XX/07634XX/78088XX/77746XX/78148XX.T00','.PKC.22762XX/22358XX/22055XX/22672XX/22684XX/22154XX/22608XX/22768XX/22632XX/22266XX/22714XX/22658XX/22631XX/22288XX/22020XX/22735XX/22269XX/22138XX/22331XX/22387XX/22070XX/22636XX/22629XX/22487XX/22725XX.T00'];
for (var s of strs) {
console.log(s.replace(/(?<=^\.([^.]+)\..*?)\//g, "$1"));
}
推荐阅读
- storybook - 故事书“未找到模块”
- typescript - 使用 Vite 发布 Vue 3 组件“库”的问题
- javascript - Webpack hmr 示例已过时
- java - net.sf.jasperreports.engine.JRException:执行 SQL 语句时出错:null
- python-3.x - 使用 color_mapper 隐藏基于分类数据的 Bokeh 字形
- javascript - 如何在 minicart magento2 中显示特定的产品附加选项
- python - 有没有办法将 Jupyter 笔记本上单元格中突出显示的代码更改为全部小写?
- python - Spark NLP Normalizer 中的正则表达式无法正常工作
- java - Spring - 从受登录名和密码保护的远程位置获取资源列表
- reactjs - UI Kitten 和 React Native 无法使用主题道具