regex 用于提取点的正则表达式

g2ieeal7  于 2023-03-13  发布在  其他
关注(0)|答案(4)|浏览(170)

我几乎失去了4个小时,试图使它的工作,我给予了。
给定下一个字符串:

adsdasd.sdfdsfsdf.f43fvev.ASCSDF.sfgsdfssdf.yaml

我想要一个正则表达式,posix可能:

  • 用所有.替换/
  • 除了.yaml应该保持这样。

所以,这一定是最后一个字符串:

adsdasd/sdfdsfsdf/f43fvev/ASCSDF/sfgsdfssdf.yaml

我尝试了:

:(

mlnl4t2r

mlnl4t2r1#

这将有助于获取除最后一个点之外的所有点:

\.(?=[^.]*\.)

使用前瞻检查在我们找到的点之后是否还有另一个点(前瞻不是匹配的一部分)。
Regex101

4urapxun

4urapxun2#

不确定这是否是您想要的。https://regex101.com/r/3FpEbq/1
同样在这种情况下,您可以先将所有.“”替换为“/",然后将“/yaml$”替换为.“yaml”

0pizxfdo

0pizxfdo4#

广义表达式(表示在正则表达式中不含“yaml”):
@SelVazi之类的正前瞻,或下面的负前瞻:

(?!\.[^.]*$)\.

看看https://regex101.com/r/lcd0ds/1https://www.pcre.org/pcre.txt

相关问题