如果这个问题措辞简陋,那我就不好了。我希望如果需要的话可以对其进行编辑。我不知道如何更好地表达它。无论如何。
我有一些这样的文本行:
1. "C:\OverPark\Casting\What You Are\L - New Takes\Justice and Truth\Dialogue\The Blessing Tree.wav" (77.3 MB)
2. "C:\OverPark\Casting\What You Are\L - New Takes\Infinity\External\Momha.wav" (34.9 MB)
3. "C:\OverPark\Casting\What You Are\L - New Takes\Intellect and Love\Music\The Most High.wav" (37.8 MB)
我需要替换从数字及其点之后到第六个反斜杠的每一行。
我知道如何从某处选择到行尾。 我知道如何从某个地方搜索到某个文本。
但是,如果像本例一样,有许多字符与您需要在选择之间结束的字符相同怎么办?
我不能使用像 e/M 这样的 to 命令,因为反斜杠之前和之后的文件夹在文件路径中不断变化。但斜线的数量似乎是相同的。有时我需要简单地删除它,有时我需要用一些东西替换它。
如何告诉搜索跳过一定数量的反斜杠或类似的内容?或者也许有更好的方法来解决这个问题?
最终应该是这样的,除非我用什么东西替换它。
1.Dialogue\The Blessing Tree.wav" (77.3 MB)
2.External\Momha.wav" (34.9 MB)
3.Music\The Most High.wav" (37.8 MB)
我可以通过两个步骤来实现这一点,首先跳过行中一定数量的反斜杠实例,如下所示:
^(?:.*?\\){5}
我可以将其替换为行中不存在的唯一字符,然后进行另一次搜索并从行开头替换为该唯一字符。我只是想看看是否可以一次性完成。如果可以的话,我想使用一个命令来实现这一点。
预先感谢您的所有意见和帮助!
要匹配某项 6 次,请正好重复 6 次:
^\d+\. # At the start of a line, match an integer and a dot,
\K # then forfeit that and start the match anew;
(?: # from that position, match
[^\\]+\\ # one or more non-backslash then a backslash,
){6} # collectively repeated 6 times.
在 regex101.com 上尝试一下。
如果您愿意,您还可以替换倒数第二个反斜杠之前的所有内容:
^\d+\. # Idem;
\K #
.+\\ # from that position, match a sequence of characters that ends with a backslash
(?= # which must be followed by
[^\\]+\\ # a level, a backslash,
[^\\]+$ # and another level at the end of line.
)
在 regex101.com 上尝试一下。 请注意,这里的“级别”只是一系列非反斜杠;它非常适合这个特定的用例,但在另一个用例中可能不起作用。