我有这种格式的字符串:
salary,salary,200.00,10/01/2013,
需要格式化如下:
"Salary","Salary",1580.00,"2014-11-04",
尝试使用Notepad ++,但无法找到如何替换除数字之外的所有字符串。
答案 0 :(得分:1)
搜索:
(?:^|(?<=,))([a-z]+|\d{2}/\d{2}/\d{4})(?=,)
替换为:
"\1"
在记事本v6.6.9上测试
答案 1 :(得分:0)
我建议匹配并捕获您希望避免将双引号(数字)括在一个组中的内容,以及其他所有内容放入另一个组中。在替换模式中,我们可以使用条件替换模式指定要用双引号括起来的组。
使用此正则表达式:
(?<p1>(?:^|,)[+-]?\d+(?:[,\h]?\d{3})*(?:\.\d+)?(?:,|$))|(?<p2>[^,\r\n]+)
并替换为(?{p1}$+{p1}:"$+{p2}")
正则表达式包含两个选择:
(?<p1>(?:^|,)[+-]?\d+(?:[,\h]?\d{3})*(?:\.\d+)?(?:,|$))
- 组p1
匹配负数和正数(整数或浮点数,数字分组符号为空格或逗号,小数点为.
- 可以进一步调整)。< / LI>
|
- 或...... (?<p2>[^,\r\n]+)
- 组p2
匹配1个或多个符号而非回车,换行或逗号。替换模式意味着:只有在匹配(p1
)或使用(?{p1}$+{p1}
+群组"
+ p2
时才使用群组"
{1}}已匹配(p2
)。
见截图: