首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex:替换第一个最左边的出现或第一个最右边的出现。

Regex:替换第一个最左边的出现或第一个最右边的出现。
EN

Stack Overflow用户
提问于 2022-02-02 03:23:32
回答 1查看 42关注 0票数 0

我需要创建一个正则表达式,它可以修改类似于以下字符串的内容。

代码语言:javascript
复制
[[12][abad][32][@adb.]

因此,如果我想与最左边的a匹配,它将标记如下。

代码语言:javascript
复制
[[12][*a*bad][32][@adb.]

或者,如果我与最右边的@ad匹配,它将标记如下:

代码语言:javascript
复制
 [[12][abad][32][*@ad*b.]

理想情况下,我希望regex类似于一个函数(例如,给定一个子字符串和/或字符,匹配该输入的第一个最左边的事件,或与第一个最右边的事件匹配)。我可以选择任何子字符串,在regex中会有一些很容易修改的静态组件(使它充当一个函数)。

我看到了一些类似的问题,这些问题提到了使用*?来获得第一次匹配(例如,我看到了一个问题给出了\[\#(.*?)\]的答案),但是我不知道如何集成给定的答案,并使我前面提到的函数,它可以接受任何字符串/字符输入,并发现它的左-最或最右-最发生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-02 03:26:35

如果您的regex工具/语言支持用捕获组替换,那么您可以尝试(对于最左边的a):

代码语言:javascript
复制
Find:    ^([^a]*)a(.*)$
Replace: $1*a*$2

Demo

对于最合适的大多数a,使用:

代码语言:javascript
复制
Find:    ^(.*)a(.*)$
Replace: $1*a*$2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70950185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档