从一串数字中找出重复数字及次数的最有效方法

aimmaker 2008-02-28 04:16:59
Suppose I have an array of hundred integers, I need to find the duplicate numbers and I have to display that which number is occurring how many times. That is suppose array is like 100, 25, 24, 236, 100, 25,100…………………
Then my program should tell that 100 occur 3 times, 25 occur 2 times and so on. The main thing is that program should be very efficient.

I would appreciate if you can help me out.
...全文
554 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mathe 2008-03-02
  • 打赏
  • 举报
回复
hundred integers数目不是很多,用二叉树就可以了,用hash table可能反而效率没有二叉树高。
实际实现中可以直接用STL中的map<int,int>

map<int,int> the_map;
for(each x){
if(the_map.find(x)==the_map.end()){
the_map[x]=1;
}else{
the_map[x]++;
}
}

如果数据量更加大些,那应该用hash表效率更加高。
aimmaker 2008-03-02
  • 打赏
  • 举报
回复
说说hash的思想
8楼的不错
但排序最好用快排不是更优吗
nealxhf 2008-03-01
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080222/02/e941b2d6-ae93-4c0e-aa39-a4299778bfd8.html
俺在15楼写的......
nealxhf 2008-03-01
  • 打赏
  • 举报
回复
以前写过,忘了是算法版还是c#版了
只要排完序就可以直接得出来了
不需要记数
我找找
wind4000 2008-03-01
  • 打赏
  • 举报
回复
counting sort?
小草sd 2008-02-29
  • 打赏
  • 举报
回复
最简单直接的就是排序。如果数据量不是很大,并愿意牺牲点空间,可以用其他方法得到效率提升。
hellothinker 2008-02-29
  • 打赏
  • 举报
回复
排序
sjtuyjc 2008-02-29
  • 打赏
  • 举报
回复
方法一
用效率最高的方法将数组排序,然后遍历一次数组就可以知道每个数字是否重复出现以及它出现的次数了
jmulxg 2008-02-29
  • 打赏
  • 举报
回复
我想到二叉树
mincomp 2008-02-29
  • 打赏
  • 举报
回复
lz的英语。。
可以用hash来做。
swankie 2008-02-29
  • 打赏
  • 举报
回复
同意2楼,就是一个排序问题,加计数。
excel常用函数公式及技巧搜集 从身份证号码提取出生年月日 从身份证号码提取出性别 从身份证号码进行年龄判断 按身份证号号码计算至今天年龄 以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式 按身份证号分男女年龄段 【年龄和工龄计算】 根据出生年月计算年龄 根据出生年月推算生肖 如何求出一个人到某指定日期的周岁? 计算距离退休年龄的公式 求工齡 计算工龄 年龄及工龄计算自动算出工龄日期格式为(yyyy.mm.dd) 【时间和日期应用】 自动显示当前日期公式 如何在单元格自动填入当前日期 如何判断某日是否星期天 某个日期是星期几 什么函数可以显示当前星期 求本月天数 显示昨天的日期 关于取日期 如何对日期进行上、、下旬区分 如何获取一个月的最大天数 日期格式转换公式 【排名及排序筛选】 一个具有11项汇总方式的函数SUBTOTAL 自动排序 按奇偶数排序 自动生成序号 如何自动标示A栏数字大小排序? 如何设置自动排序 重复数据得到唯一的排位序列 按字符数量排序 排序字母与数字的混合内容 随机排序 排序的问题 怎样才能让数列自动加数 一个排序问题 数字的自动排序,插入后不变? 根据规律的重复的姓名列产生自动序号 排名的函数 自动排名公式 百分比排名的公式写法为: 平均分及总分排名 求名次排名 排名次根据分数进行普通排名 对于普通排名分数相同时,按顺序进行不重复排名 依分数比高低名次成绩排名 美国式排名 国式排名 求最精简的自动排名公式 排序后排名 位次排名 根据双列成绩进行共同排名 在双列间排名 等次排名 不等次排名(行小排先) 不等次排名(行大排先) 顺次排名 有并列排名 无并列排名 有并列分段排名 无并列分段排名 成绩排名 如何排名 数据排名(隔几行排名) 根据分数进行倒排名 倒数排名函数是什么 如何实现每日各车间产量的排名 分数相同时按照一科的分数进行排名 筛选后自动产生序列号并汇总 如何筛选奇数行 函数筛选姓名 名次筛选 如何实现快速定位(筛选出不重复值) 如何请在N列列出A1:L9每列都存在的数值 自动为性别编号的问题 【文本与页面设置】 EXCEL如何删除*号 将字符串的星号“*”替换为其它字符 去空格函数如何去掉字符和单元格里的空格 怎样快速去除表不同行和列的空格 如何禁止输入空格 代替单元格字符串 把单元格数字转变成为特定的字符格式 把有六百多个单元格的一列,变成一页的多列 将N列变M列公式归纳为 一列变四列 四列变一列 重复四次填充 多行数据排成一列 将单元格一列分为多列 首写字母大写 把单元格编号的小写字母变成大写字母 让姓名左右对齐 数字而小数点又对齐 计算指定单元格编号组非空单元格的数量 比较两个单元格内容是否一致 怎么样设置才能让这一列的每个单元格只能输入12位 如何让工作表奇数行背景是红色偶数行背景是蓝色 计算特定的一组单元格,满足条件的单元格的个数 把文本格式的数字转换成真正的数字 设置页码 Excel表格里如何插入页码的? 如何设置页脚首页为第5页 表格的页脚问题 无拘无束的页眉 打印表头 Excel打印如何不显示错误值符号 对于一些不可打印的字符的处理 用那个函数可将个位数前面的零值显示出来? 如果你要在A3的前面插入100行 请问如何每隔30行粘贴一新行 在工作表里有连续10行数据, 现在要每行间格2行 一个大表每一行下面需要加一行空行,怎么加最方便 Excel插入空白行 快速删除工作表的空行快速删除空行一次删完Excel里面多出很多的空白行 每30行为一页并加上一个标题如何实现如何实现隔行都加上标题项 如何把标签页去掉的? 去掉默认的表格线(网线)表格的框线 列标的标识变了 符号的意义 双击格式刷竟也能COPY文本(不是文本格式) 查找+格式刷的妙用 光标移动 最后一行为文本最后一行为数字 如何在EXCEL快速定位最后一行数据 用SUN函数快速求和 在Excel快速查看所有工作表公式 在Excel设置行间距 怎样同时改变多行行高 快速换行 让文本换行 在Excel行列快速转换 将原有列的内容倒置过来 快速回到A1单元格 复制粘贴回车键的妙用 一次选批注单元格 一次在所有单位格插入批注 在公式插入批注 不连续单元格填充同一数据 空白行的填充 怎样用函数向下实现自动填充 怎么设置自动保存 避免输入网址和电子邮件地址时的超链接 单元格前面自动加了等号 加盖公章 查找+格式刷的妙用 Excel鼠标双击妙用 Excel快速定位的技巧实例 在Excel插入Flash时钟的步骤 小写数字转换成人民币大写 轻轻松松制作超复杂Excel表头 【字符截取与增减】 截取单元格里某个字符后的字符 截取字符的公式 如何确定*号后的数字 如何提取数字间的数 三个数,如何取出间那个 取数值后三位公式 取数函数 如何把单元格数字提取出来(字符串不连续) 数字在字符串不连续如何提取数字 用如何提取“-”前后的字符 怎样删去﹕后的文字 怎样只取“.”之后的文字﹖ 获取单元格内容字符串 如何提取一串数字的几位数字(字符) 如何把一个单元格数字挑出来 分割文本 按照给定的位数,截断小数点后的数字 单元格数字提取问题 以关键字提取名称 如何把文本的前几个字符去除 对一列的文字统一去掉最后一个字 讨如何去掉单元格的第一个数字? 论一下取最后一个单词的方法 如何去掉单元格最后一位数字 如何在一列已经输入的数据前添加“p” 什么函数可以插入字符 如何在数据前添加“*”号 数字前面加上数字 【数据拆分与合并】 数字如何拆分 单元格的数据拆分 单元格的拆分 如何拆分字组 用连字符“&”来合并文本怎样把不同格式不同位置的内容合并到一个单元格内 把不同单元格的内容合到一个单元格里 合并与拆分 合并不同单元格的内容 关于文字在表格的组合 求拆解合并公式 如何把字母和数字分开? 把分散在各单元格的内容合在一个单元格 多个工作表的单元格合并计算 【条件自定义格式】 通过条件格式将小计和总计的行设为不同的颜色 如何实现这样的条件格式 隔行不同字体颜色怎么设置 让不同类型数据用不同颜色显示 如何做这样的EXCEL表(颜色交叉) 条件格式 使用条件格式设置颜色条纹 相同数据的提示? 如何做到小于10显示二位小数,大于10显示一位小数 如何根据数值的正负加上“+”“-”符号 120,000显示为12.0 121,999显示为12.2 自定义单元格格式将单元格的数全部变成万元表示 有何办法实现将一张表的数据由元的单位转换为万元 常用的自定义格式 自定义格式 怎样定义格式 在工具按钮之间设置分隔线 自定义区域为每一页的标题 一个单元格内格式问题 定制单元格数字显示格式 巧用定位选条件单元格 工作表的标签的字体和大小可以更改吗 隔行用不同颜色显示,请问如何做 将单元格设置为有“凸出”的效果或“凹进去”的效果 在Excel设计彩色数字 定义名称的妙处 零值问题 【汇总计算与统计】 个调税公式 算物价的函数 自动计算应收款滞纳金 淘汰率 应用公积金的一个函数 如何利用公式将数值转为百分比格式 比高得分公式 自动评定奖级 对带有单位的数据如何进行求和 对a列动态求和 动态求和公式 列的跳跃求和 有规律的隔行求和 如何实现奇数行或偶数行求和 单数行求和统计偶数单元格合计数值 隔行求和公式设置 隔列将相同项目进行求和 隔行或隔列加总 请问如何在一百行内做隔行相加 如何将间隔一定的列的数据相加呢 隔列求和(A、B列) 隔列求和的公式 隔列求和 关于隔行、隔列求和的问题 EXCEL求两列的对应元素乘积之和 计算900~1000之间的数值之和 双条件求和 如何实现这样的条件求和 A1:A10数字显为文本格式时,如何求和 如何分班统计男女人数 统计数值大于等于80的单元格数目 计算出A1里有几个abc 有条件统计 如何统计各年龄段的数量 如何计算20-50岁的人数? 如何统计40-50岁的人的个数 要统计出7岁的女生人数 统计人数 如何统计A1:A10,D1:D10的人数? 如何让EXCEL自动从头统计到当前单元格 统计人数 统计人数 求各分数段人数 有什么方法统计偶数 如何显示 工资统计的问题 统计数据问题一例 根据给定的条件,对数据进行合计 十列数据合计成一列 统计汉字字符个数 关于取数 统计单元格内不为空的格数 自动将销量前十名的产品代号及销量填入表 统计最大的连续次数3个“不重复”个数统计在一列有重复的姓名,如何统计出具体有几人 计数的问题 不相同 如何分班统计男女人数 在几百几千个数据发现重复项 统计互不相同的数据个数 多个工作表的单元格合并计算 单个单元格字符统计 数据区包含某一字符的项的总和,该用什么公式 函数如何实现分组编码 【数值取整及进位】 取整数函数 数值取整 求余数的函数 四舍五入公式 对数字进行四舍五入 如何实现“见分进元” 四舍五入 如何四舍五入取两位小数 根据给定的位数,四舍五入指定的数值 四舍六入 如何实现2舍3入 怎么设置单元格以千元四舍五入 ROUND函数的四舍五入不进位的解决方法? 保留一位小数 如何三舍四入 另类四舍五入 想把小数点和后面的数字都去掉,不要四舍五入 求真正的四舍五入后的数 小数点进位 个位数归0或者归5 【大小值或间值】 求平均值 如何实现求平均值时只对不等于零的数求均值? 平均分的问题 怎样求最大值(最小值或间值)平均数怎么弄 去掉其两个最大值和两个最小值的公式 去一行最高分最低分求平均值 在9个数值去掉最高与最低然后求平均值 求最大值(n列) 如何实现求平均值时只对不等于零的数求均值? 得到单元格编号组最大的数或最小的数 标记出3个最大最小值 取前五名,后五名的方法 如何用公式求出最大值所在的行? 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样实现精确查询 查找及引用 查找函数的应用 怎么能方便的判断某个单元格包含多少个指定的字符?如何用查找函数 日期查找的问题 如何自动查找相同单元格内容 查找函数怎样对号入座(查找) 一个文本查找的问题 查找一列最后一个数值 查找重复字符 请教查找替换问题 IF函数替换法总结 查找的函数(查找末位词组) 怎样从原始数据自动获取最后一个数据 两列数据查找相同值对应的位置 查找数据公式两个(基本查找函数为VLOOKUP,MATCH) 【输入数据的技巧】 谈谈Excel输入的技巧 一列不输入重复数字 如果要查找重复输入的数字 单元格输入 大量0值输入超级技巧 如何在C列输入工号在D列显示姓名 输入提示如何做 在信息输入前就给予提示 数据有效
excel常用函数公式及技巧搜集 从身份证号码提取出生年月日 从身份证号码提取出性别 从身份证号码进行年龄判断 按身份证号号码计算至今天年龄 以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式 按身份证号分男女年龄段 【年龄和工龄计算】 根据出生年月计算年龄 根据出生年月推算生肖 如何求出一个人到某指定日期的周岁? 计算距离退休年龄的公式 求工齡 计算工龄 年龄及工龄计算自动算出工龄日期格式为(yyyy.mm.dd) 【时间和日期应用】 自动显示当前日期公式 如何在单元格自动填入当前日期 如何判断某日是否星期天 某个日期是星期几 什么函数可以显示当前星期 求本月天数 显示昨天的日期 关于取日期 如何对日期进行上、、下旬区分 如何获取一个月的最大天数 日期格式转换公式 【排名及排序筛选】 一个具有11项汇总方式的函数SUBTOTAL 自动排序 按奇偶数排序 自动生成序号 如何自动标示A栏数字大小排序? 如何设置自动排序 重复数据得到唯一的排位序列 按字符数量排序 排序字母与数字的混合内容 随机排序 排序的问题 怎样才能让数列自动加数 一个排序问题 数字的自动排序,插入后不变? 根据规律的重复的姓名列产生自动序号 排名的函数 自动排名公式 百分比排名的公式写法为: 平均分及总分排名 求名次排名 排名次根据分数进行普通排名 对于普通排名分数相同时,按顺序进行不重复排名 依分数比高低名次成绩排名 美国式排名 国式排名 求最精简的自动排名公式 排序后排名 位次排名 根据双列成绩进行共同排名 在双列间排名 等次排名 不等次排名(行小排先) 不等次排名(行大排先) 顺次排名 有并列排名 无并列排名 有并列分段排名 无并列分段排名 成绩排名 如何排名 数据排名(隔几行排名) 根据分数进行倒排名 倒数排名函数是什么 如何实现每日各车间产量的排名 分数相同时按照一科的分数进行排名 筛选后自动产生序列号并汇总 如何筛选奇数行 函数筛选姓名 名次筛选 如何实现快速定位(筛选出不重复值) 如何请在N列列出A1:L9每列都存在的数值 自动为性别编号的问题 【文本与页面设置】 EXCEL如何删除*号 将字符串的星号“*”替换为其它字符 去空格函数如何去掉字符和单元格里的空格 怎样快速去除表不同行和列的空格 如何禁止输入空格 代替单元格字符串 把单元格数字转变成为特定的字符格式 把有六百多个单元格的一列,变成一页的多列 将N列变M列公式归纳为 一列变四列 四列变一列 重复四次填充 多行数据排成一列 将单元格一列分为多列 首写字母大写 把单元格编号的小写字母变成大写字母 让姓名左右对齐 数字而小数点又对齐 计算指定单元格编号组非空单元格的数量 比较两个单元格内容是否一致 怎么样设置才能让这一列的每个单元格只能输入12位 如何让工作表奇数行背景是红色偶数行背景是蓝色 计算特定的一组单元格,满足条件的单元格的个数 把文本格式的数字转换成真正的数字 设置页码 Excel表格里如何插入页码的? 如何设置页脚首页为第5页 表格的页脚问题 无拘无束的页眉 打印表头 Excel打印如何不显示错误值符号 对于一些不可打印的字符的处理 用那个函数可将个位数前面的零值显示出来? 如果你要在A3的前面插入100行 请问如何每隔30行粘贴一新行 在工作表里有连续10行数据, 现在要每行间格2行 一个大表每一行下面需要加一行空行,怎么加最方便 Excel插入空白行 快速删除工作表的空行快速删除空行一次删完Excel里面多出很多的空白行 每30行为一页并加上一个标题如何实现如何实现隔行都加上标题项 如何把标签页去掉的? 去掉默认的表格线(网线)表格的框线 列标的标识变了 符号的意义 双击格式刷竟也能COPY文本(不是文本格式) 查找+格式刷的妙用 光标移动 最后一行为文本最后一行为数字 如何在EXCEL快速定位最后一行数据 用SUN函数快速求和 在Excel快速查看所有工作表公式 在Excel设置行间距 怎样同时改变多行行高 快速换行 让文本换行 在Excel行列快速转换 将原有列的内容倒置过来 快速回到A1单元格 复制粘贴回车键的妙用 一次选批注单元格 一次在所有单位格插入批注 在公式插入批注 不连续单元格填充同一数据 空白行的填充 怎样用函数向下实现自动填充 怎么设置自动保存 避免输入网址和电子邮件地址时的超链接 单元格前面自动加了等号 加盖公章 查找+格式刷的妙用 Excel鼠标双击妙用 Excel快速定位的技巧实例 在Excel插入Flash时钟的步骤 小写数字转换成人民币大写 轻轻松松制作超复杂Excel表头 【字符截取与增减】 截取单元格里某个字符后的字符 截取字符的公式 如何确定*号后的数字 如何提取数字间的数 三个数,如何取出间那个 取数值后三位公式 取数函数 如何把单元格数字提取出来(字符串不连续) 数字在字符串不连续如何提取数字 用如何提取“-”前后的字符 怎样删去﹕后的文字 怎样只取“.”之后的文字﹖ 获取单元格内容字符串 如何提取一串数字的几位数字(字符) 如何把一个单元格数字挑出来 分割文本 按照给定的位数,截断小数点后的数字 单元格数字提取问题 以关键字提取名称 如何把文本的前几个字符去除 对一列的文字统一去掉最后一个字 讨如何去掉单元格的第一个数字? 论一下取最后一个单词的方法 如何去掉单元格最后一位数字 如何在一列已经输入的数据前添加“p” 什么函数可以插入字符 如何在数据前添加“*”号 数字前面加上数字 【数据拆分与合并】 数字如何拆分 单元格的数据拆分 单元格的拆分 如何拆分字组 用连字符“&”来合并文本怎样把不同格式不同位置的内容合并到一个单元格内 把不同单元格的内容合到一个单元格里 合并与拆分 合并不同单元格的内容 关于文字在表格的组合 求拆解合并公式 如何把字母和数字分开? 把分散在各单元格的内容合在一个单元格 多个工作表的单元格合并计算 【条件自定义格式】 通过条件格式将小计和总计的行设为不同的颜色 如何实现这样的条件格式 隔行不同字体颜色怎么设置 让不同类型数据用不同颜色显示 如何做这样的EXCEL表(颜色交叉) 条件格式 使用条件格式设置颜色条纹 相同数据的提示? 如何做到小于10显示二位小数,大于10显示一位小数 如何根据数值的正负加上“+”“-”符号 120,000显示为12.0 121,999显示为12.2 自定义单元格格式将单元格的数全部变成万元表示 有何办法实现将一张表的数据由元的单位转换为万元 常用的自定义格式 自定义格式 怎样定义格式 在工具按钮之间设置分隔线 自定义区域为每一页的标题 一个单元格内格式问题 定制单元格数字显示格式 巧用定位选条件单元格 工作表的标签的字体和大小可以更改吗 隔行用不同颜色显示,请问如何做 将单元格设置为有“凸出”的效果或“凹进去”的效果 在Excel设计彩色数字 定义名称的妙处 零值问题 【汇总计算与统计】 个调税公式 算物价的函数 自动计算应收款滞纳金 淘汰率 应用公积金的一个函数 如何利用公式将数值转为百分比格式 比高得分公式 自动评定奖级 对带有单位的数据如何进行求和 对a列动态求和 动态求和公式 列的跳跃求和 有规律的隔行求和 如何实现奇数行或偶数行求和 单数行求和统计偶数单元格合计数值 隔行求和公式设置 隔列将相同项目进行求和 隔行或隔列加总 请问如何在一百行内做隔行相加 如何将间隔一定的列的数据相加呢 隔列求和(A、B列) 隔列求和的公式 隔列求和 关于隔行、隔列求和的问题 EXCEL求两列的对应元素乘积之和 计算900~1000之间的数值之和 双条件求和 如何实现这样的条件求和 A1:A10数字显为文本格式时,如何求和 如何分班统计男女人数 统计数值大于等于80的单元格数目 计算出A1里有几个abc 有条件统计 如何统计各年龄段的数量 如何计算20-50岁的人数? 如何统计40-50岁的人的个数 要统计出7岁的女生人数 统计人数 如何统计A1:A10,D1:D10的人数? 如何让EXCEL自动从头统计到当前单元格 统计人数 统计人数 求各分数段人数 有什么方法统计偶数 如何显示 工资统计的问题 统计数据问题一例 根据给定的条件,对数据进行合计 十列数据合计成一列 统计汉字字符个数 关于取数 统计单元格内不为空的格数 自动将销量前十名的产品代号及销量填入表 统计最大的连续次数3个“不重复”个数统计在一列有重复的姓名,如何统计出具体有几人 计数的问题 不相同 如何分班统计男女人数 在几百几千个数据发现重复项 统计互不相同的数据个数 多个工作表的单元格合并计算 单个单元格字符统计 数据区包含某一字符的项的总和,该用什么公式 函数如何实现分组编码 【数值取整及进位】 取整数函数 数值取整 求余数的函数 四舍五入公式 对数字进行四舍五入 如何实现“见分进元” 四舍五入 如何四舍五入取两位小数 根据给定的位数,四舍五入指定的数值 四舍六入 如何实现2舍3入 怎么设置单元格以千元四舍五入 ROUND函数的四舍五入不进位的解决方法? 保留一位小数 如何三舍四入 另类四舍五入 想把小数点和后面的数字都去掉,不要四舍五入 求真正的四舍五入后的数 小数点进位 个位数归0或者归5 【大小值或间值】 求平均值 如何实现求平均值时只对不等于零的数求均值? 平均分的问题 怎样求最大值(最小值或间值)平均数怎么弄 去掉其两个最大值和两个最小值的公式 去一行最高分最低分求平均值 在9个数值去掉最高与最低然后求平均值 求最大值(n列) 如何实现求平均值时只对不等于零的数求均值? 得到单元格编号组最大的数或最小的数 标记出3个最大最小值 取前五名,后五名的方法 如何用公式求出最大值所在的行? 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样实现精确查询 查找及引用 查找函数的应用 怎么能方便的判断某个单元格包含多少个指定的字符?如何用查找函数 日期查找的问题 如何自动查找相同单元格内容 查找函数怎样对号入座(查找) 一个文本查找的问题 查找一列最后一个数值 查找重复字符 请教查找替换问题 IF函数替换法总结 查找的函数(查找末位词组) 怎样从原始数据自动获取最后一个数据 两列数据查找相同值对应的位置 查找数据公式两个(基本查找函数为VLOOKUP,MATCH) 【输入数据的技巧】 谈谈Excel输入的技巧 一列不输入重复数字 如果要查找重复输入的数字 单元格输入 大量0值输入超级技巧 如何在C列输入工号在D列显示姓名 输入提示如何做 在信息输入前就给予提示 数据有效
文名: 正则表达式经典实例 原名: Regular Expression Cookbook 作者: (美)高瓦特斯(Goyvaerts,J.) (美)利维森(Levithan,S.)译者: 郭耀 资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社书号: 9787115228321发行时间: 2010年06月01日 地区: 大陆 语言: 简体文 简介: 编辑推荐 每个程序员都会遇到需要使用正则表达式的情况,但是要用好正则表达式却并不容易。本书提供了100多个实例,以帮助读者使用正则表达式处理数据和文本。即使有经验的用户也经常会遇到性能不佳、误报、漏报等让人挠头的错误,本书对于如何使用正则表达式来解决一些常见的问题给出了按部就班的解决方案,其包括c#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET的实例。   本书主要包括以下内容:   通过一个精练的教程理解正则表达式的基本原理和技巧;   在不同的编程语言和脚本语言有效使用正则表达式;   学习如何对输入进行合法性检查和格式化;   处理单词、文本行、特殊字符和数值;   学习如何在URL、路径、标记语言和数据交换使用正则   表达式;   学习更高深的正则表达式特性的微妙之处;   理解在不同语言正则表达式的APl、语法和行为之间的   区别;   创建更好的正则表达式来满足个性化的需求。 内容简介 本书讲解了基于8种常用的编程语言使用正则表达式的经典实例。书提供了上百种可以在实战使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,本书给出了涉及基于C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。   本书的读者对象是对正则表达式感兴趣的软件开发人员和系统管理员。本书旨在教会读者很多新的技巧以及如何避免语言特定的陷阱,读者可以通过本书提供的实例解决方案库来解决实践的复杂问题。 作者简介 Jan Goyvaerts领导着Just Great Software公司,他在这个公司设计和开发了一些最流行的正则表达式软件。他的产品包括RegexBuddy,世界上唯一可以模拟l5种正则表达式流派特性的正则表达式编辑器,以及PowerGREP,Microsoft Windows平台上功能最强大的9rep工具。 目录: 第1章 正则表达式简介 1.1 正则表达式的定义 1.2 使用正则表达式的工具 第2章 正则表达式的基本技巧 2.1 匹配字面文本 2.2 匹配不可打印字符 2.3 匹配多个字符之一 2.4 匹配任意字符 2.5 匹配文本行起始和/或文本行结尾 2.6 匹配整个单词 2.7 Unicode代码点、属性、区块和脚本 2.8 匹配多个选择分支之一 2.9 分组和捕获匹配的子串 2.10 再次匹配先前匹配的文本 2.11 捕获和命名匹配子串 2.12 把正则表达式的一部分重复多次 2.13 选择最小和最大重复次数 2.14 消除不必要的回溯 2.15 避免重复逃逸 2.16 检查一个匹配,但不添加到整体匹配 2.17 根据条件匹配两者之一 2.18 向正则表达式添加注释 2.19 在替代文本添加字面文本 2.20 在替代文本添加正则匹配 2.21 把部分的正则匹配添加到替代文本 2.22 把匹配上下文插入到替代文本 第3章 使用正则表达式编程 3.1 在源代码使用字面正则表达式 3.2 导入正则表达式函数库 3.3 创建正则表达式对象 3.4 设置正则表达式选项 3.5 检查是否可以在目标字符串找到匹配 3.6 检查正则表达式能否整个匹配目标字符串 3.7 获取匹配文本 3.8 决定匹配的位置和长度 3.9 获取匹配文本的一部分 3.10 获取所有匹配的列表 3.11 遍历所有匹配 3.12 在过程代码对匹配结果进行验证 3.13 在另一个匹配查找匹配 3.14 替换所有匹配 3.15 使用匹配的子串来替换匹配 3.16 使用代码生成的替代文本来替换匹配 3.17 替换另一个正则式匹配的所有匹配 3.18 替换另一个正则式匹配之间的所有匹配 3.19 拆分字符串 3.20 拆分字符串,保留正则匹配 3.21 逐行查找 第4章 合法性验证和格式化 4.1 E-mail地址的合法性验证 4.2 北美电话号码的合法性验证和格式化 4.3 国际电话号码的合法性验证 4.4 传统日期格式的合法性验证 4.5 对传统日期格式进行精确的合法性验证 4.6 传统时间格式的合法性验证 4.7 检查ISO 8601格式的日期和时间 4.8 限制输入只能为字母数字字符 4.9 限制文本长度 4.10 限制文本的行数 4.11 肯定响应的检查 4.12 社会安全号码的合法性验证 4.13 ISBN的合法性验证 4.14 ZIP代码的合法性验证 4.15 加拿大邮政编码的合法性验证 4.16 英国邮政编码的合法性验证 4.17 查找使用邮局信箱的地址 4.18 转换姓名格式 4.19 信用卡号码的合法性验证 4.20 欧盟增值税代码 第5章 单词、文本行和特殊字符 5.1 查找一个特定单词 5.2 查找多个单词之一 5.3 查找相似单词 5.4 查找除某个单词之外的任意单词 5.5 查找后面不跟着某个特定单词的任意单词 5.6 查找不跟在某个特定单词之后的任意单词 5.7 查找临近单词 5.8 查找重复单词 5.9 删除重复的文本行 5.10 匹配包含某个单词的整行内容 5.11 匹配不包含某个单词的整行 5.12 删除前导和拖尾的空格 5.13 把重复的空白替换为单个空格 5.14 对正则表达式元字符进行转义 第6章 数字 6.1 整数 6.2 十六进制数字 6.3 二进制数 6.4 删除前导 6.5 位于某个特定范围之内的整数 6.6 在某个特定范围之内的十六进制数 6.7 浮点数 6.8 含有千位分隔符的数 6.9 罗马数字 第7章 URL、路径和Internet地址 7.1 URL合法性验证 7.2 在全文查找URL 7.3 在全文查找加引号的URL 7.4 在全文寻找加括号的URL 7.5 把URL转变为链接 7.6 URN合法性验证 7.7 通用URL的合法性验证 7.8 从URL提取通信协议方案 7.9 从URL抽取用户名 7.10 从URL抽取主机名 7.11 从URL抽取端口号 7.12 从URL抽取路径 7.13 从URL抽取查询 7.14 从URL抽取片段 7.15 域名合法性验证 7.16 匹配IPv4地址 7.17 匹配IPv6地址 7.18 Windows路径的合法性验证 7.19 分解Windows路径 7.20 从Windows路径抽取盘符 7.21 从UNC路径抽取服务器和共享名 7.22 从Windows路径抽取文件夹 7.23 从Windows路径抽取文件名 7.24 从Windows路径抽取文件扩展名 7.25 去除文件名的非法字符 第8章 标记语言和数据交换 8.1 查找XML风格的标签 8.2 把标签b替换为strong 8.3 删掉除em和strong之外的所有XML风格标签 8.4 匹配XML名称 8.5 添加p和br标签将纯文本转换为HTML 8.6 在XML风格的标签查找某个特定属性 8.7 向不包含cellspacing属性的 table标签添加该属性 8.8 删除XML风格的注释 8.9 在XML风格的注释查找单词 8.10 替换在CSV文件使用的分隔符 8.11 抽取某个特定列的CSV域 8.12 匹配INI段头 8.13 匹配INI段块 8.14 匹配INI名称-值对

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧