Heim > Fragen und Antworten > Hauptteil
Problembeschreibung
Eine größere Datei muss verarbeitet und der Inhalt gelöscht werden, bevor die entsprechende Zeichenfolge in jeder Zeile gelöscht wird. Das Dateiinhaltsformat ist wie folgt:
1 2 3 4 5 |
|
Es wird erwartet, dass der Inhalt vor dem ersten Erscheinen des Segmentfehlers in jeder Zeile bis zum Zeilenanfang gelöscht werden kann. Die erwarteten Verarbeitungsergebnisse sind wie folgt:
1 2 3 4 5 |
|
Die aktuelle Lösungverwendet Makros zur Ausführung
1 2 3 4 5 6 7 |
|
Erwartete LösungErwarten Sie eine direkte Spaltenbearbeitung (Strg + V), um die übereinstimmende Position jeder Zeile am Anfang der Zeile zu löschen.
Wie erreicht man es?
曾经蜡笔没有小新2017-05-16 16:36:34
试试正则替换吧,列编辑,你的关键字位置不一样,直接列编辑不了
1 |
|
仅有的幸福2017-05-16 16:36:34
@ixx 思路是对的,正则表达式
不过有更简单的方案
1 |
|
\ze
标记匹配模式结束
淡淡烟草味2017-05-16 16:36:34
我猜测问题作者是想使用vim的列模式(Ctrl-v)然后多行选择,匹配选择到segment单词之前的部分。
但是不行,因为做不到
1)列模式下匹配做得比较好的是到行首或者行尾,形成不规则的匹配块;其他的位置不行。
2)第一行从行首到segment的s是3个W,而2行和3行到segment的s是2个W,这个不好一次性弄的。(同理W换w也不行)
列模式下,比较适合处理的前提是,文字排列比较整齐或者能方便统一定位的。
==========
另一个答案说的用正则表达式来匹配替换的很好用。