带有可选替换的 NotePad++ 货币正则表达式

NotePad++ Currency RegEx with Optional Replace

我的搜索模式:\"($)(\d{0,3}?)\,?(\d{1,3}?)\,?(\d{0,3})\s?\"

匹配所有这些:

""
""
"0"
",000"
",000 "
"0,000"
",000,000 "
",000,000"
"0,000,000"

我知道我真的不需要搜索千位以下的内容,但我包括那些以备将来可能应用的内容。

我的问题:我需要用 HTML 转义字符 , 替换所有逗号,但前提是搜索结果中存在逗号。

这个替换模式 ,, 给出了错误的结果,我只是没有看到用于我的替换的正确模式。

$,1,
$,1,0
$,1,00
$,1,000
$,10,000
$,100,000
,000,000
,000,000
0,000,000

这是我试图得到的结果:



0
,000
,000
0,000
,000,000
,000,000
0,000,000

最后一位数字后没有引号和额外的 space。

我不喜欢必须找到从 1 到 100 的数字,但它更可取。

关于如何在 NotePad++ 中进行可选替换有什么想法吗?

使用正则表达式搜索和替换:将 (\d),(\d) 替换为 ,。勾选正则表达式,点击替换或全部替换。

由于某些未知原因,上面评论中的 Sebastian RE 不适用于 notepad++ 6.8.6(发现工作正常,但不能替换)。因此,我们不使用环顾四周,而是将周围的数字捕获到 </code> 和 <code> 中,以便在替换中重用。

尝试以下正则表达式:

(?<=\d),(?=\d)

在对您的数据集进行 运行 测试后,我得到的结果为:

""
""
"0"
"&#44;000"
"&#44;000 "
"0&#44;000"
"&#44;000&#44;000 "
"&#44;000&#44;000"
"0&#44;000&#44;000"