在每行上的特定模式后选择第一个逗号


0

我有几千行,每行有相同的结构,我必须编辑它的一部分。

"650","4","The lenght of this part varies, Here's some commas, here, and, there"
"203","4","Now this is shorter, Don't edit these commas, here"
"102","4","Really short, More commas, incoming"

上面应该编辑到这个,即添加撇号。

"650","4","The lenght of this part varies", "Here's some commas, here, and, there"
"203","4","Now this is shorter", "Don't edit these commas, here"
"102","4","Really short", "More commas, incoming"

如何选择之后的第一个逗号 “4”,” ?我正在使用Sublime Text 2,它支持正则表达式。

自从我上次需要正则表达以来已经这么多年了,所以要温柔。提前致谢!


这应该与逗号之前的部分匹配 ","[._[:alnum:]-0-9]+"
frlan

Answers:


1

我没有使用Sublime Text进行查找和替换正则表达式,但这适用于Notepad ++,所以希望你能找到一种方法来使用它。

(.{5},.{3}?,.*?),

这将捕获第一部分,直到第三个逗号,然后为您的替换,您可以做:

\1", "

然后将第一部分插回到原始字符串中,然后替换逗号 ", "


这很有效。谢谢你,先生。
Liuhu

这假设前两个数字字段中的每一个都正好是3位数字和1位数字长。可能更安全 "\d+"?我想这取决于数据文件和OP说“相同的结构”所以也许这意味着第1列永远不会有“99”......
beroe

@beroe,你是绝对正确的,但我认为在这种情况下,困难部分可能不是正则表达式,而是在查找/替换中创建和使用捕获组。如果将来有人遇到此问题,您可以使用 rubular.com 为不同格式的文本文件尝试其他正则表达式。
Adam
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.