![]() 核心会员
|
正则还没入门,想从实际问题出发来理解,请有空的帮助解答,如不特别指明编辑软件为EM。
1.在支持正则的编辑软件里,如何把“第29章”内的所有全角数字替换为半角数字,数字位数不定。 2楼答案:\H转换半角,仅有EM有这种扩展转义,写法类似于\H(字符),也就是 第([0123456789]+)章 TO 第\H\1章 2.如何把“上下五千年1”变为“上下五千年第1章” 数字是变化的 6楼答案:上下五千年(\d+) TO 上下五千年第\1章 3 .如何把 两个空行 变为 一个空行?\n与\r有什么区别? 6楼7楼答案:\n\n\n TO \n\n 4、如果要把特征首和尾之间的任何内容删除,内容可能跨行,怎么处理 答案:首.*尾 非贪婪模式 [\s\S]+? EM默认不允许.跨行,在专业版有个自定义选项可以设置,同时要指定最大跨行 5.如何将匹配的第一处位置标记为1,第n处标记为n。如所有找到的"青年组"按匹配顺序替换为"青年1组""青年2组"。 这个看来超出了正则的范围,应该是正则匹配以后编辑器的事 6、如何将含有 第xx章 的行同时全部选中,或者提取复制到粘贴板。 23楼答案参照此贴 https://bbs.et8.net/bbs/showthread.php?t=864152 (?<=^|(第.+[章集])).*?(?=$|(第.+[章集])) 7、既然\s\S都不包括换行符那为什么[\s\S]*能跨行处理? 我是被网上有些教程误导了,实际上\S包括换行符。[\s\S]*?可以跨行处理 8、对于.*我还是有疑问,它会不会把后面的第字也匹配了?规则是什么,匹配到第字就终止.的匹配吗? 单纯搜索.*会匹配至换行符前,“.*第”会终止于后面的第,不会把第作为.*的一部分,除非贪婪模式下有多个第。 EM有个开关可以设置.包括不包括换行符 9、正则表达式:(?<=^|(第.+[章集])).*?(?=$|(第.+[章集])) 这个我在EM里运行出错,但语法能理解。如果想在[章集]后面加上"空格4个汉字"的章节名字,如何表示4个汉字? 如果仅仅需要中文可以用[一-龥]包括简繁体 此帖于 2013-10-09 20:01:34 被 river01 编辑. . |
||
![]() |