如何解决Notepad ++:选择一个完整的列并将其转换为字符串
我正在尝试在 Notepad++ 中构建 https://docs.google.com/spreadsheets/d/1usRuvazJlxAGvF0G2-e00MEQ_AjMCOnWopBFX4qfUcc/edit#gid=0
MS sql 查询
我向社区寻求有关如何执行以下任务的帮助:
- 在 Notepad++ 中选择一整列(有多个列)并将该选择转换为字符串
例如。我有一列包含这些值 (2020-9-21) 我想选择整个列并将其转换为字符串..最终结果应该是
INSERT
- 在每行的开头和结尾添加
'2020-9-21'
和(
例如数据
),
期望输出
2166 0 2020-09-21 JPP 172432 10.70 0 2021110 123403948123 938 0000002930BC3040303 SALE 1
解决方法
替换为正则:
^(.+?)\t(.+?)\t(.+?)\t(.+?)\t(.+?)\t(.+?)\t(.+?)\t(.+?)\t(.+?)\t(.+?)\t(.+?)\t(.+?)\t(.+?)$
致:
($1,$1,'$3','$4',$5,$6,$7,$8,$9,$10,'$11','$12',$13),
,
选择“正则表达式”作为“搜索模式”。然后:
- 查找:
(?m)^((?:[^\t]*\t){N})([^\t]*)
- 替换:
$1'$2'
其中 N
是您要转换为字符串的字段(从 0 开始)。
正则表达式说明:
-
(?m)
是 multi-line flag。 -
^
匹配行的开头(或字符串的开头,如果您不是在多行模式下)。 -
[^\t]
匹配非制表符。 -
*
是 zero-or-more operator。 -
(...)
是一个 capturing group,即可以在替换中引用的组。 -
(?:...)
是一个非捕获组。
为了得到你的预期结果,你可以在第二个时刻将所有的\t
替换为,
,将所有行的开头(即(?m)^
)替换为{{1} } 和所有行的结尾(即 (
)与 (?m)$
。
这是一种方法,您必须在开头和结尾手动添加括号:
- Ctrl+H
- 查找内容:
\b(?:([\d.]+)|(\S+))\h+
- 替换为:
(?1$1)(?2'$2'),
- 检查 环绕
- 检查 正则表达式
- 全部替换
说明:
\b # word boundary
(?: # non capture group
([\d.]+) # group 1,1 or more digit or dot
| # OR
(\S+) # group 2,1 or more non space
) # end group
\h+ # 1 or more horizontal space
替换:
(?1 # if group 1 exists (i.e. only digits and dot)
$1 # put group 1 without any changes
) # endif
(?2 # if group 2 exists (i.e. string values)
'$2' # put group 2 surrounded with quotes
) # endif,# comma
屏幕截图(之前):
屏幕截图(之后):
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。