正则表达式-一次性替换掉不能用作文件名的字符

为什么需要?

因为在收藏链接的时候,那些公众号的文件名总是带有诸如|或者[这些符号,导致用Obsidian的QuickAdd添加笔记时失效。

需求

用正则表达式,一次性把这些讨厌的符号换成空格。符号包括有:< > / \ | : " * ? [ ], 请问大家应该怎么写?

1 个赞
[:?"*/\\#<>|$]

可能我说得不够详细,举个例子:文件名为政治 | 俄罗斯 [战争分析],我想要一次性| [ ]这些符号去掉。

其实有学习一下正则表达式的,只是换了笔记软件,忘记又懒得去翻。然后我去Regex Learn恶补了一番。

最后

我是用在FV悬浮球的文字替换功能上的,它是支持正则表达式的。

你这解释的太迷了,容易误导小朋友。

  • [] 表示的是字符集,匹配这里面有的一个字符
  • 连续 1~n 个符合字符集的字符写作 [a-z]+,这里加号说的是匹配 1 到多次
  • 加号换成星号是匹配 0 到多次。
  • 默认贪婪,就是只要能匹配,在符合规则的情况下尽可能地长。
  • 而结合你的例子和你描述的问题,是缺少了 global 的 flag,一般记作 g,写在最后面,根据环境不同有所差异。表示匹配全部符合表达式的情况。而没有 global 标记,则是只匹配第一个。
1 个赞

所言甚是。

FV悬浮球无法用全局标志,也没选项去设置。所以最后要这样写就可以了:[:?"*/\\#<>|$]+