NotePad ++货币RegEx与可选替换

时间:2016-03-11 14:28:29

标签: regex notepad++

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

匹配所有这些:

"$1"
"$10"
"$100"
"$1,000"
"$10,000 "
"$100,000"
"$1,000,000 "
"$10,000,000"
"$100,000,000"

我知道我真的不需要在成千上万的地方搜索,但包括那些可能的未来申请。

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

此替换模式$1$2,$3,$4给出了错误的结果,我只是没有看到用于替换的正确模式。

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

这是我试图获得的结果:

$1
$10
$100
$1,000
$10,000
$100,000
$1,000,000
$10,000,000
$100,000,000

在最后一位数后没有引号,也没有额外的空格。

我没有结婚,必须找到1到100,但最好。

关于如何在NotePad ++中进行可选替换的任何想法?

2 个答案:

答案 0 :(得分:1)

使用正则表达式搜索和替换:将(\d),(\d)替换为\1,\2。检查正则表达式,单击“替换”或“全部替换”。

由于某些未知原因,上面评论中的塞巴斯蒂安的RE不适用于notepad ++ 6.8.6(发现工作正常,但不能替代)。因此,我们不是使用环顾四周,而是将周围的数字捕获到\1\2中,以便在替换中重复使用。

答案 1 :(得分:1)

尝试以下正则表达式:

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

在对数据集运行测试后,我得到了结果:

"$1"
"$10"
"$100"
"$1&#44;000"
"$10&#44;000 "
"$100&#44;000"
"$1&#44;000&#44;000 "
"$10&#44;000&#44;000"
"$100&#44;000&#44;000"