正则表达式删除最后一个下划线之前的所有字符,除非它附加到某个单词
ReGex to remove all characters before the last underscore unless it's attached to a certain word
我有一堆 png
文件。其中一半看起来像 name_001.png
,但另一半有一个额外的下划线,看起来像 name_001_tr.png
。
我想做的只是删除名称部分,所以我正在考虑使用 RegEx
,它只针对没有 "tr" 旁边的下划线,一个删除 下划线 .
之前的所有字符
感谢任何帮助,如果我能得到有用的东西,这会为我省去很多麻烦。谢谢!
编辑:有些名字中有破折号。
这应该让你到达那里:
^[^_]+_
https://regex101.com/r/jS5qP8/1
您需要使用替换函数将其替换为空字符串,具体取决于您使用的平台。
更新: 如果总是有一系列数字,并且这是您要捕获的内容的开始,您可以这样做:
^\D+_
https://regex101.com/r/gJ0vQ6/1
更新:这应该符合最新要求的条件:
.*?_(?=\d+)|\s*\d+(?=_tr.png)
我有一堆 png
文件。其中一半看起来像 name_001.png
,但另一半有一个额外的下划线,看起来像 name_001_tr.png
。
我想做的只是删除名称部分,所以我正在考虑使用 RegEx
,它只针对没有 "tr" 旁边的下划线,一个删除 下划线 .
感谢任何帮助,如果我能得到有用的东西,这会为我省去很多麻烦。谢谢!
编辑:有些名字中有破折号。
这应该让你到达那里:
^[^_]+_
https://regex101.com/r/jS5qP8/1
您需要使用替换函数将其替换为空字符串,具体取决于您使用的平台。
更新: 如果总是有一系列数字,并且这是您要捕获的内容的开始,您可以这样做:
^\D+_
https://regex101.com/r/gJ0vQ6/1
更新:这应该符合最新要求的条件:
.*?_(?=\d+)|\s*\d+(?=_tr.png)