这个贴子和右边链接里的情况有很多相似之处 http://www.bathome.net/thread-64532-1-1.html
下面图片左侧是要修改的文本, 右侧是处理后的文本, 文本颜色仅表示对应关系
如果下方图片显示不清, 请打开链接 i.ibb.co/Fb5Y7H2/8.png

要处理的文本分为两部分:
第1个以#bub Bub开头的行之前是第1部分【蓝框之前的内容】
之后是第2部分【蓝框中的内容】
----------------------------------------------------------------------------------------------------------------------
处理过程:
①第1部分的文本中, 如果某行中存在 :bub.BubXX 则按先后顺序修改XX的序号【XX是1至4位的数字】, 在示例中:
包含 :bub.Bub11 的行是先出现的, 则把11改为1
包含 :bub.Bub65 的行是第2出现的, 则把65改为2
其它的以此类推
②第1部分中包含 :bub.BubXX 的行 与 第2部分中 #bub.BubXX 开头的行是互相绑定的, XX需要同步修改, 在示例中:
第1部分中 :bub.Bub11 改为 :bub.Bub1 之后, 第2部分的 #bub.Bub11 要同步改为 #bub.Bub1
相互绑定的行在图中已用同种颜色标记起来了
③上面XX同步修改的同时, 把#bub.BubXX开头的行尾部的m字母后面修改成如下格式:
m + 空格 + ;; + 与其绑定的 :bub.BubXX 冒号之前的文本
在示例中:
ab :bub.Bub11 和 #bub Bub11 m 是绑定的, 同步修改后应该是
ab :bub.Bub11 改为 ab :bub.Bub1
#bub Bub11 m 改为 #bub Bub1 m ;;ab
④如果第1部分的:bub.BubXX没匹配到的#bub BubXX的行,则新建#开头的行, 在示例中:
ZZ :bub.Bub26 匹配不到#bub Bub26的行,则把26改为5之后,新建下列的行
#bub Bub5 m ;;ZZ
我是新加的
⑤最后将第2部分的内容, 按XX的先后顺序排序
注意:
上面的操作基本是在改序号和修改m字母后面的内容, 其它内容不能改动
#bub.BubXX开头的行前只保留一个空行- $s= @'
- ab $( ) :bub.Bub11
- - :TA_Fbv "T " * $q$\m.co
- 中国 ac :bub.Bub65 * a.b
- >windows - china * cdef
- 小 日本 japen :bub.Bub10 ;;c.e
- |
- ac ${ } :bub.Bub18
- <
- ZZ :bub.Bub26
- #bub Bub10 m ;;1 小日本
- 我之前序号是10
- 最后是3
- #bub Bub
- #bub Bub11 m
- 我之前序号是11
- 最后是1
- #bub Bub 11
- #bub Bub18 m ;;6
- 我之前序号是18
- 最后是4
- #bub Bub 4
- #bub Bub65 m ;;
- 我之前序号是18
- 最后是2
- '@
- #Todo 处理代码
- <# 处理后的效果
- ab $( ) :bub.Bub1
- - :TA_Fbv "T " * $q$\m.co
- 中国 ac :bub.Bub2 * a.b
- >windows - china * cdef
- 小 日本 japen :bub.Bub3 ;;c.e
- |
- ac ${ } :bub.Bub4
- <
- ZZ :bub.Bub5
- #bub Bub1 m ;;ab $( )
- 我之前序号是11
- 最后是1
- #bub Bub 11
- #bub Bub2 m ;;中国 ac
- 我之前序号是18
- 最后是2
- #bub Bub3 m ;;小 日本 japen
- 我之前序号是10
- 最后是3
- #bub Bub
- #bub Bub4 m ;;ac ${ }
- 我之前序号是18
- 最后是4
- #bub Bub 4
- #bub Bub5 m ;;ZZ
- 我是新加的
- #>
复制代码 |