Notepad++ 在符号前的变量字符处分割线

Notepad++ 在符号前的变量字符处分割线

我想将一行数据拆分成每行,每行代表一个州的参议院提名投票。为了回答这个问题,我已将所有五十个州的数据截断为两个州的数据。我目前拥有以下格式的数据:

Alabama: Sessions (R-AL), Yea Shelby (R-AL), Yea Alaska: Murkowski (R-AK), Nay Sullivan (R-AK), Yea

这里的问题是,如果我在 处分割线:,我最终会得到

 Alabama:
 Sessions (R-AL), Yea Shelby (R-AL), Yea Alaska:
 Murkowski (R-AK), Nay Sullivan (R-AK), Yea NextState:

我也无法按固定数量的字符进行拆分,因为州和参议员的名字长度是可变的。

我希望能够做的是说“找到:并在前一个连续字母串之前的空格处拆分”。

这(假设)会找到:然后向后数“amabalA”,找到空格,然后在那里分割。

那看起来就像

 Alabama: Sessions (R-AL), Yea Shelby (R-AL), Yea 
 Alaska: Murkowski (R-AK), Nay Sullivan (R-AK), Yea

这可能吗?你能想到更好的方法吗?如果不用 Notepad++,那么用 R 或 SQL 怎么样?


更新


我能够使用 x 个单词后的拆分发布位置((\w+\W+){9}) 几乎可以解决问题,但参议员有两个姓氏的情况除外(例如 Cortez Masto、Van Hollen)。您可以从我的一个驱动器

答案1

对于 Windows,你可以使用 \r\n 字符来分割行:

在此处输入图片描述

对于 Linux,您可以使用 \n 字符来分行:

在此处输入图片描述

然后点击“全部替换”

答案2

当然有更好的解决方案,但如果您不需要经常清理,则可以分两步实现。

请确保在开始之前复制您的文件,然后使用 Notepad++ 尝试这个快速而简单的解决方案。

(1)清理单一名称州:

  • Ctrl+H
  • 找什么:\, (\w+) (\w+:)
  • 用。。。来代替:\, $1\r\n$2
  • 查看 正则表达式
  • Replace all

(2)清理双名州:

  • 找什么:\, (\w+) (\w+) (\w+:)
  • 用。。。来代替:\, $1\r\n$2 $3
  • 查看 正则表达式
  • Replace all

请注意空格。

在此处输入图片描述

相关内容