打印 上一主题 下一主题
开启左侧

正则表达式技术入门:文本调序和修改

[复制链接]
楼主
yuanscn 发表于 2018-2-11 09:23:45 | 显示全部楼层
例子:
原文是“礼火,字继定,高中,明月扶子,相平公之子,生于一八八二年正月十七日子时。娶杨某某长女,生于年月日子时。”
要求:
1、"娶...长女",改为“娶...女为妻”这种格式以避免调整第一种顺序时引起凡是...子|女,都移动到第二句的问题。


1的公式:
查找公式:(娶.+?女)\W   //最小化筛选,不会把标点或“娶松门卫参军徽郡汪赞皇公女,生一女,”中的“汪赞皇公女,生一女”筛选进来。
                                       //后面加个参数\W起判断标点作用,以防把“生一女”这样的内容也选中。
                  (\b娶.*女)(!?为妻)   //但遇到“娶松门卫参军徽郡汪赞皇公女,生一女,”会把“生一女”也包括进去。
替换公式:\1为妻
执行结果:能够判断,看原句中有无为妻二字,如果没有则添加“为妻”二字,如已经有则不再重复添加。
                  会误选“娶朱氏,生于道光十三年卒失,续娶王氏生失,出二女”。

同理:AA,抚某某之子,某某继子,这二句有语法表达上的冲突。
公式:(抚.+?子)
替换:\1入继
效果:AA,抚某某之子入继,某某之子

2、把“,相古公之子”调整到第二句,即:“礼火,相古公之子”
2的公式:字号后移,内容调序
例子内容:
小青,字清清,号木青,王老汉三女。适张村小李,出二女,长女待字次适谢。
小青,字清清,号木青,王老汉继女。适张村小李,出二女,长女待字次适谢。
小青,字清清,号木青,王老汉长女。适张村小李,出二女,长女待字次适谢。
小青,字清清,号木青,王老汉三女。适张村小李,出二女,长女待字次适谢。
小青,字清清,号木青,王老汉二女。适张村小李,出二女,长女待字次适谢。
小青,字清清,号木青,王老汉次女。适张村小李,出二女,长女待字次适谢。
小青,字清清,号木青,王老汉养女。适张村小李,出二女,长女待字次适谢。
查找公式:^(\b.+?\W)(\w.*)\W(\w*子|\w*女)\W
                 或:^(\w.+?\W)(\w.*)\W(\w.*?子|\w.*?女)\W
替换公式:\1\3,\2,
小青,出二女,字清清,号木青,王老汉三女。适张村小李长女待字次适谢。
没有达到想要的目的。王老汉三女位置没动。
执行结果:能达到调整顺序目的,但会把以“子|女”结束的内容都调序到前边,如“娶..女,”,“字明子,”等
解决办法:
^(\w.+?\W)(.+?)(\w+?子|\w+?女)\W
\1\3,\2
效果:
小青,王老汉三女,字清清,号木青,适张村小李,出二女,长女待字次适谢。
小青,王老汉继女,字清清,号木青,适张村小李,出二女,长女待字次适谢。
小青,王老汉长女,字清清,号木青,适张村小李,出二女,长女待字次适谢。
小青,王老汉三女,字清清,号木青,适张村小李,出二女,长女待字次适谢。
小青,王老汉二女,字清清,号木青,适张村小李,出二女,长女待字次适谢。
小青,王老汉次女,字清清,号木青,适张村小李,出二女,长女待字次适谢。
小青,王老汉养女,字清清,号木青,适张村小李,出二女,长女待字次适谢。

公式1在公式2之后执行。解决原文中"明月扶子,相古公之子,"子时等多个子或女信息时,也用这种方法。

对原文减少信息来测试一下(一个去掉字,一个去掉字和号):
小青,王老汉长女,字清清,适张村小李,出二女,长女待字次适谢。
小青,王老汉三女,字清清,号木青,适张村小李,出二女,长女待字次适谢。
小青,王老汉二女,适张村小李,出二女,长女待字次适谢。

结果:信息最少的那句王老汉的王字错位了。
小青,王老汉三女,号木青,适张村小李,出二女,长女待字次适谢。
小青,王老汉继女,字清清,适张村小李,出二女,长女待字次适谢。
小青,老汉长女,王适张村小李,出二女,长女待字次适谢。
小青,王老汉三女,字清清,号木青,适张村小李,出二女,长女待字次适谢。

回复

使用道具 举报

沙发
yuanscn 发表于 2018-2-17 11:38:10 | 显示全部楼层
去掉多余的“公”字
   查找公式:(\W\w{1,2})(公)(.?[子|女])(\W)
   替换公式:\1\3\4
例子:
继平,相华公三子,字公然。
继直,守中公之子。继直公续娶赵家女为妻
堃信,守和公之女
不会替换“字公然”或“继直公续娶赵家女为妻”中的公字
回复

使用道具 举报

板凳
yuanscn 发表于 2018-2-27 20:21:43 | 显示全部楼层
<\/?(?!br|p|img|strong|\/strong|div|table|tr|td|span)[^>]*>

去除word生成网页时产生的冗码
<\/?(?!/b|b|br|img|strong|\/strong|div|table|tr|td)[^>]*>
回复

使用道具 举报

地板
yuanscn 发表于 2019-2-16 19:38:48 | 显示全部楼层
^(\d{1,2})(.)(\s{1,2})
删除每行行首的数字序号编码的正则表达式,如:
1.        <style type="text/css">
2.        <!--
3.        #kw2 {font:13px Verdana; height:22px; width:50px;}
4.        #sb {height:25px;width:5.6em}
5.        #bg{background-repeat:repeat-x}
6.        -->
7.        </style>
回复

使用道具 举报

5#
yuanscn 发表于 2019-5-25 17:11:55 | 显示全部楼层
当手机版提示“您访问的页面无手机页面,是否进一步访问电脑版?”时,网上搜索的结果是:
1 修改source/function/function_core.php第618行:  
2 把提示错误的语句去掉改成 'not_in_mobile' => '<meta http-equiv="refresh" content="5" />',进行强制刷新。
3 template(此处是你自己的模板的目录名)\touch\common\showmessage.htm 加js脚本。

  错错错!!!

原因是从门户的角度阅读文章。
../forum.php?mod=viewthread&tid=1&from=portal&mobile=2
如何去掉$from=portal是解决问题的关键。

现在终于找到了:手机版精华帖调用1867这个模板时,模块属性“文章模式查看”改为“否”就不用论坛模式阅读了,就不会产生“没有手机版了”。

步骤:门户——模块管理——模块ID 1867搜索——模块属性——文章模式查看:否。
回复

使用道具 举报

快速回复 返回顶部 返回列表