-
关于正则表达式的问题。10
3.0.0.0 3.255.255.255 美国 新泽西通用电气公司
4.0.0.0 4.9.255.255 美国 CZ88.NET
4.10.0.0 4.10.255.255 美国 新泽西州立大学
4.11.0.0 4.11.255.255 美国 夏威夷
4.12.0.0 4.19.77.255 美国 CZ88.NET
4.19.78.0 4.19.78.255 美国 西南政法大学
4.19.79.0 4.19.79.63 美国 Armed Forces Radio/Television
4.21.177.0 4.21.177.255 美国 西南政法大学
4.36.124.128 4.36.124.255 美国 Technical Resource Connections Inc
4.36.125.0 4.36.127.255 美国 坦帕大学
4.37.216.0 4.37.219.255 美国 德克萨斯女子大学
12.2.169.0 12.2.169.255 美国 Leepfrog Technologies
12.3.134.0 12.3.135.255 美国 Lycoming College
12.5.176.240 12.5.176.255 美国 Friends University
193.104.218.0 193.104.218.255 法国 College Des Ingenieurs
193.104.219.0 193.105.42.255 法国 CZ88.NET
193.105.43.0 193.105.52.255 法国 American University of Paris
12.6.230.0 12.6.231.255 美国 Marlboro College
12.11.139.0 12.11.139.255 美国 南佛蒙特学院
12.13.176.128 12.13.176.255 美国 Spelman College
12.16.216.0 12.16.219.255 美国 太平洋联合学院
12.16.220.0 12.19.229.255 美国 ATT用户
12.19.230.0 12.19.230.255 美国 Houghton College
将这四列数据用,号分隔开,最后一列英文名称保持原样(难点好像就是在这里)。
2008年8月15日 11:01
4个答案 按时间排序 按投票排序
-
不会 Python,用 Java 写了一个,参考一下吧。
public class Test { public static void main(String[] args) { String str = "3.0.0.0 3.255.255.255 美国 新泽西通用电气公司\n" + "4.0.0.0 4.9.255.255 美国 CZ88.NET\n" + "4.10.0.0 4.10.255.255 美国 新泽西州立大学\n" + "4.11.0.0 4.11.255.255 美国 夏威夷\n" + "4.12.0.0 4.19.77.255 美国 CZ88.NET\n" + "4.19.78.0 4.19.78.255 美国 西南政法大学\n" + "4.19.79.0 4.19.79.63 美国 Armed Forces Radio/Television\n" + "4.21.177.0 4.21.177.255 美国 西南政法大学\n" + "4.36.124.128 4.36.124.255 美国 Technical Resource Connections Inc\n" + "4.36.125.0 4.36.127.255 美国 坦帕大学\n" + "4.37.216.0 4.37.219.255 美国 德克萨斯女子大学\n" + "12.2.169.0 12.2.169.255 美国 Leepfrog Technologies\n" + "12.3.134.0 12.3.135.255 美国 Lycoming College\n" + "12.5.176.240 12.5.176.255 美国 Friends University\n" + "193.104.218.0 193.104.218.255 法国 College Des Ingenieurs\n" + "193.104.219.0 193.105.42.255 法国 CZ88.NET\n" + "193.105.43.0 193.105.52.255 法国 American University of Paris\n" + "12.6.230.0 12.6.231.255 美国 Marlboro College\n" + "12.11.139.0 12.11.139.255 美国 南佛蒙特学院\n" + "12.13.176.128 12.13.176.255 美国 Spelman College\n" + "12.16.216.0 12.16.219.255 美国 太平洋联合学院\n" + "12.16.220.0 12.19.229.255 美国 ATT用户\n" + "12.19.230.0 12.19.230.255 美国 Houghton College"; String regex = "(?m)^(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(.+)$"; str = str.replaceAll(regex, "$1,$2,$3,$4"); System.out.println(str); } }
2008年8月15日 22:09
-
贴一个直观的, 有些地方可以简化的, 参考一下:
public void testCn() { String input = "3.0.0.0 3.3.0.0 美国 新泽西通用电气公司 "; input = input.replaceAll("[ \\t]+", " ").trim(); //过滤tab, 将多个空格合成一个空格, 去掉两头的空格 String regex = "([\\d\\.]+)" + //匹配IP: xxx.xxx.xxx.xxx " " + //1个空格, 因为前面的replaceAll中将多个空格合成一个空格 "([\\d\\.]+)" + //匹配IP: xxx.xxx.xxx.xxx " " + //1个空格 "([\u4e00-\u9fa5]+)" + // 汉字 " " + //1个空格 "(.+)"; // 最后的 Matcher matcher = Pattern.compile(regex).matcher(input.trim()); matcher.matches(); assertEquals(input, matcher.group()); assertEquals("3.0.0.0", matcher.group(1)); assertEquals("3.3.0.0", matcher.group(2)); assertEquals("美国", matcher.group(3)); assertEquals("新泽西通用电气公司", matcher.group(4)); input = "3.0.0.0 3.3.0.0 美国 I hate You "; input = input.replaceAll("[ \\t]+", " ").trim(); //过滤tab, 去掉两头的空格 matcher = Pattern.compile(regex).matcher(input.trim()); matcher.matches(); assertEquals(input, matcher.group()); assertEquals("3.0.0.0", matcher.group(1)); assertEquals("3.3.0.0", matcher.group(2)); assertEquals("美国", matcher.group(3)); assertEquals("I hate You", matcher.group(4)); }
2008年8月15日 13:02
-
你这份数据的原始数据应该是 TAB 分隔四列的吧。
^(\S+)\s+(\S+)\s+(\S+)\s+(.*)$
看上去第一第二列都是 IP 地址不会出现空格,并且猜测第三列的数据中没有空格。如果第三列的数据有空格,那就没有办法区分第三列和第四列。2008年8月15日 11:45
相关推荐
总的来说,"PB实现的正则表达式"是一个关于在PowerBuilder 11.5中利用自定义或第三方库实现正则表达式功能的话题。虽然存在对中文字符的支持限制,但通过学习和理解提供的代码或库,开发者依然可以提升在Power...
正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它用于匹配、查找、替换等操作,涉及字符串处理的...对于编程人员来说,熟练掌握正则表达式不仅可以提高工作效率,还能解决许多复杂的问题。
正则表达式类库则为VC++和MFC的开发者提供了对正则表达式功能的支持。 "VC、VC++,MFC 正则表达式类库"指的是在MFC中实现或集成的正则表达式处理模块。这个库通常包含一系列的类和函数,允许程序员编写符合特定模式...
标题中的“pb 使用正则表达式源码pbregexp”指的是在PowerBuilder(简称pb)环境中,利用名为“pbregexp”的正则表达式组件来实现源代码级别的正则表达式操作。PowerBuilder是一款流行的可视化的、面向对象的软件...
正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索。在C#编程语言中,正则表达式被广泛应用于数据验证、文本提取、格式转换等多个场景。本项目提供了一个C#编写的正则表达式测试工具,包含完整...
在Qt框架中,正则表达式(Regular Expression)是一种强大的文本处理工具,它允许程序员以结构化的方式匹配、查找、替换或验证字符串。本项目针对Qt的lineEdit组件,通过正则表达式实现了输入限制功能,使得lineEdit...
"正则表达式必知必会" 正则表达式是一种强大的文本处理工具,广泛应用于各个领域。下面是对正则表达式的详细解释: 正则表达式的用途 正则表达式主要用于处理文本,提供了两大主要功能:查找和替换。查找功能允许...
Java使用正则表达式提取XML节点内容的方法示例 Java使用正则表达式提取XML节点内容的方法示例主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作...
C语言正则表达式库是用于在C编程环境中处理和匹配正则表达式的软件库。这个库名为PCRE(Perl Compatible Regular Expressions),正如其名,它与Perl语言中的正则表达式语法高度兼容,提供了丰富的功能和强大的匹配...
- **兼容性问题**:不同的数据库系统支持的正则表达式语法可能存在差异,需要根据所使用的数据库类型调整正则表达式的写法。 - **安全性问题**:在用户输入的数据中使用正则表达式时,应注意防止SQL注入攻击,确保...
随着互联网的迅速发展,几乎所有工具软件和程序语言都支持的正则表达式也变得越来越强大和易于使用。本书是讲解正则表达式的经典之作。本书主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校...
正则表达式验证工具 V1.0 本软件主要用于检测正则表达式是否正确。 运行环境:本软件为绿色软件,无需安装,但需要Microsoft .NET Framework 4 支持,如果没有请前去下载(下载路径:...
《Delphi 2010正则表达式插件详解》 在编程世界中,正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助开发者高效地进行字符串的匹配、查找、替换等操作。在Delphi 2010这个经典的集成开发环境中...
- 考虑性能问题,对于大量文本的处理,优化正则表达式和替换策略是很重要的。 5. **应用场景** - 数据清洗:去除或替换文本中的特定字符或模式,如邮箱地址验证、电话号码格式化等。 - 信息提取:从大量文本中找...
正则表达式自动生成器V2.0.0.1是一款强大的工具,旨在帮助用户方便快捷地构建和测试正则表达式。它提供了多语言支持,使得不同地区的用户都能无障碍地使用。在IT领域,正则表达式是进行文本处理、数据验证和搜索替换...
Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...
本书基于各种实用场景,从基础的文本匹配开始,逐步深入到回溯引用、条件性求值以及前后查找等高级特性,使得读者能够系统、全面地掌握正则表达式的使用方法,并将其应用于解决实际问题中。 书中介绍的正则表达式...
正则表达式(Regular Expression,简称regex)是一种用于匹配字符串的强大工具,广泛应用于文本处理、数据验证、搜索和替换等场景。在编程语言中,正则表达式通常以字符串的形式存在,通过特定的语法和模式来定义...
### 正则表达式基础知识与应用 #### 一、正则表达式的定义及用途 正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助用户查找、替换以及操作特定的字符串或字符组合。它在多种编程语言和操作...