我有一个很大的列表,正在尝试对其进行排序,但我想根据某个字符之后的值对列表进行排序。例如:
241&name=A
123&name=C
645&name=B
所以我想按“A、B、C”等字母顺序对列表进行排序。我可以在 Notepad++ 或 Excel 中执行此操作吗?
答案1
Notepad++ 解决方案
“菜单” > “TextFX” > “TextFX 工具”,然后选择以下之一:
清除“+升序排序”选项的复选标记以按降序排序。
选中“+升序排序”选项,即可按升序排序。
选择文本,可以是文本行或文本列
- 对于列模式选择 - 按住Shift+Alt向下,用鼠标选择文本
“菜单” > “TextFX” > “TextFX 工具”,然后选择以下之一:
“按区分大小写的方式对行进行排序(在列中)”
“对行进行排序不区分大小写(在列)”
结果(前后):
笔记:
TextFX Tools 将仅对您选择的行进行排序。如果您执行列模式选择(按住 Shift + Alt 键并通过鼠标选择文本),则它将对至少部分选定的所有行进行排序,但将根据选定部分进行排序。
选项“+排序仅输出唯一(在列)行”可以独立于“+升序排序”选项进行勾选(意味着它将以升序或降序模式工作)。启用后,排序时将删除重复条目,仅留下唯一条目。
当使用矩形选择时,行的排序键是该行位于选择范围内的部分。
如果我没有 TextFX 插件怎么办?
插件管理器安装:
安装插件最简单的方法是使用插件管理器
“菜单” > “插件” > “插件管理器” > “显示插件管理器”
选择“可用”
选择“TextFX 字符”
点击“安装”
手动安装:
关闭 Notepad++
从以下位置下载 zip 文件http://sourceforge.net/projects/npp-plugins/files/TextFX/TextFX%20v0.26/
解压到 Notepad++
plugins
目录。运行 Notepad++
答案2
答案3
答案4
Notepad++ 有一个不同的解决方案,它不需要额外的插件。我使用了此输入,并假设输入中没有任何 #。您只需使用不同的字符将排序项与原始输入分开即可。
123&name=Alpha&somethingelse
456&name=Gamma&differentstuff
789&name=Beta&otherstuff
使用正则表达式搜索和替换将要排序的部分复制到行首。确保启用正则表达式并使用
Search: (.*)&name=(.*?)&(.*)
Replace: \2#\1&name=\2&\3
结果:
Alpha#123&name=Alpha&somethingelse
Gamma#456&name=Gamma&differentstuff
Beta#789&name=Beta&otherstuff
- 使用排序线功能。
结果:
Alpha#123&name=Alpha&somethingelse
Beta#789&name=Beta&otherstuff
Gamma#456&name=Gamma&differentstuff
使用另一个正则表达式撤消步骤 1 中的更改。
Search: (.*)#(.*)
Replace: \2
结果:
123&name=Alpha&somethingelse
789&name=Beta&otherstuff
456&name=Gamma&differentstuff