为字符串中的每个单词添加引号,数字除外
Add Quotation mark to every word in string, except numbers
我有这种格式的字符串:
salary,salary,200.00,10/01/2013,
需要格式化如下:
"Salary","Salary",1580.00,"2014-11-04",
尝试使用 Notepad++,但找不到如何替换除数字以外的所有字符串。
搜索这个:
(?:^|(?<=,))([a-z]+|\d{2}/\d{2}/\d{4})(?=,)
替换为:
""
在记事本 v6.6.9 上测试
我建议将您想要避免用双引号(数字)括起来的内容匹配并捕获到一组中,将其他所有内容放入另一组中。在替换模式中,我们可以使用 条件替换模式 .
指定要用双引号括起来的组
使用这个正则表达式:
(?<p1>(?:^|,)[+-]?\d+(?:[,\h]?\d{3})*(?:\.\d+)?(?:,|$))|(?<p2>[^,\r\n]+)
并替换为(?{p1}$+{p1}:"$+{p2}")
正则表达式包含两个选项:
(?<p1>(?:^|,)[+-]?\d+(?:[,\h]?\d{3})*(?:\.\d+)?(?:,|$))
- 组 p1
匹配负数和正数(整数或浮点数,数字分组符号为空格或逗号,小数为 .
- 可以进一步调整) .
|
- 或者...
(?<p2>[^,\r\n]+)
- 组 p2
匹配除回车符 return、换行符或逗号之外的 1 个或多个符号。
替换模式的意思是:只有在匹配((?{p1}$+{p1}
)时才使用组p1
,或者如果匹配则使用"
+组p2
+"
组 p2
匹配 (:"$+{p2}")
)。
见截图:
我有这种格式的字符串:
salary,salary,200.00,10/01/2013,
需要格式化如下:
"Salary","Salary",1580.00,"2014-11-04",
尝试使用 Notepad++,但找不到如何替换除数字以外的所有字符串。
搜索这个:
(?:^|(?<=,))([a-z]+|\d{2}/\d{2}/\d{4})(?=,)
替换为:
""
在记事本 v6.6.9 上测试
我建议将您想要避免用双引号(数字)括起来的内容匹配并捕获到一组中,将其他所有内容放入另一组中。在替换模式中,我们可以使用 条件替换模式 .
指定要用双引号括起来的组使用这个正则表达式:
(?<p1>(?:^|,)[+-]?\d+(?:[,\h]?\d{3})*(?:\.\d+)?(?:,|$))|(?<p2>[^,\r\n]+)
并替换为(?{p1}$+{p1}:"$+{p2}")
正则表达式包含两个选项:
(?<p1>(?:^|,)[+-]?\d+(?:[,\h]?\d{3})*(?:\.\d+)?(?:,|$))
- 组p1
匹配负数和正数(整数或浮点数,数字分组符号为空格或逗号,小数为.
- 可以进一步调整) .|
- 或者...(?<p2>[^,\r\n]+)
- 组p2
匹配除回车符 return、换行符或逗号之外的 1 个或多个符号。
替换模式的意思是:只有在匹配((?{p1}$+{p1}
)时才使用组p1
,或者如果匹配则使用"
+组p2
+"
组 p2
匹配 (:"$+{p2}")
)。
见截图: