任何人都知道为什么会这样:
Filename: 031\_Lobby.jpg
RegExp: (\d+)\_(.*)[^\_e|\_i]\.jpg
Replacement: \1\_\2\_i.jpg
这产生了这个:
031\_Lobb\_i.jpg
出于某种原因,它正在砍掉第二个背后的最后一个角色 -
引用(“Lobby”中的“y”。当我删除[^_e|_i]
时,不这样做,所以我必须做出与此相关的错误。
谢谢!
答案 0 :(得分:4)
你强迫它用正则表达式的这一部分砍掉最后一个字符:
[^_e|_i]
其翻译为:除"_"
,"e"
,"|"
,"i"
以外的任何单个字符。
"y"
中的"Lobby"
符合此标准。
显然,你意味着 "not _e"
和"not _i"
,但这不是表达它的方式。这是对的:
(\d+)_(.+)(?<!_[ei])\.jpg
请注意,点需要在正则表达式中进行转义。
答案 1 :(得分:1)
它正在删除“y”,因为[^ _e | _i]匹配y,而.*
匹配y之前的所有内容。
答案 2 :(得分:-1)
你强迫它的最后一个字符与_e和_i不同。你应该使用它(注意最后的*):
(\d+)_(.*)[^_e|_i]*.jpg