-
字符串用正则替换5
String s= "cn=测试用户1,ou=测试机构1,ou=湖北省,ou=org,o=essp,c=cn";
我想把上面的字符串用正则替换为:
湖北省->测试机构1->测试用户1
需求是:ou=org,o=essp,c=cn可以直接去掉(当然ou=org,o=essp,c=cn之间可能是有空格的)
但ou=xxx的数量是可变的,如字符串也可能是这样:cn=测试用户1,ou=测试一部,ou=测试机构1,ou=湖北省
需要变为:湖北省->测试机构1->测试一部->测试用户1。
希望平时正则用的多的同学帮一把,谢谢。
用java语法实现~2013年6月20日 12:43
2个答案 按时间排序 按投票排序
-
采纳的答案
public static void main(String[] args) { String s= "cn=测试用户1,ou=测试机构1,ou=湖北省,ou=org,o=essp,c=cn"; // String s= "cn=测试用户1,ou=测试一部,ou=测试机构1, ou=湖北省 "; String cnPattern = "cn=(.*?)\\s*,.*"; String ouPattern = "ou=([^, (org)]*)"; List<String> result = new ArrayList<String>(); Matcher cnMatcher = Pattern.compile(cnPattern).matcher(s); if(cnMatcher.find()) { result.add(cnMatcher.group(1)); } Matcher ouMatcher = Pattern.compile(ouPattern).matcher(s); int start = 0; while(ouMatcher.find(start)) { String ou = ouMatcher.group(1); if(ou.length() > 0) { result.add(ou); } start = ouMatcher.start() + 1; } StringBuilder sb = new StringBuilder(); for (int l = result.size(), i = l - 1; i >= 0; i--) { String s1 = result.get(i); if(i != l - 1) { sb.append("-->"); } sb.append(s1); } System.out.println(sb.toString()); }
2013年6月20日 13:36
-
我看哥们对正则理解还有误,你是不是想找ou=后面是不是,号且不能是org的字符串?
目前你的正则是
String ouPattern = "ou=([^, (org)]*)";
它的意思为ou=后面不能是",号","空格","(","o","r","g",")"的任意字符.
正则[]里面的字符都是当成单个字符,不能表示字符串.
String s= "cn=测试用户1,ou=测试机构1,ou= 湖北省,ou=org,o=essp,c=cn";
如果把ou=后面加上一个空格便无法匹配,如以上字声明字符串,
因为楼主说明过存在
(当然ou=org,o=essp,c=cn之间可能是有空格的)
再比如说在湖北省前面加上一个g也是不能匹配的
String s= "cn=测试用户1,ou=测试机构1,ou=g湖北省,ou=org,o=essp,c=cn";2013年6月21日 14:20
相关推荐
本文将深入探讨C#中的字符串操作和正则表达式使用,帮助你更好地理解和运用这些工具。 一、C#字符串 1. 字符串基础:在C#中,字符串是不可变对象,这意味着一旦创建,就不能更改。字符串常量通常用双引号括起,...
《VB字符串和正则表达式参考手册》是一本专注于Visual Basic(VB)编程语言中字符串操作和正则表达式使用的专业指南。VB是Microsoft开发的一种编程环境,广泛应用于Windows应用程序的开发,而字符串处理和正则表达式...
VB.NET字符串提供了丰富的内置函数和类,使得开发者能够方便地进行字符串操作,而正则表达式则是一种强大的模式匹配工具,用于在文本中查找、替换或提取特定的模式。 VB.NET字符串: 1. **字符串创建与赋值**:在...
- 正则表达式是一种模式匹配工具,用于字符串搜索、替换和提取。Java中的`Pattern`和`Matcher`类用于处理正则表达式。 - `Pattern.compile(regex)`编译正则表达式为模式对象,`Matcher`对象通过`Pattern`对象的`...
C#的字符串和正则表达式结合使用,可以解决许多复杂的文本处理问题,如验证用户输入、数据清洗、文本分析等。在实际开发中,熟练掌握这两部分知识,不仅能提高代码的效率,还能大大增强解决问题的能力。QT38-C#字符...
isMobileSimple : 验证手机号(简单) isMobileExact : 验证手机号(精确) isTel : 验证电话号码 isIDCard15 : 验证身份证号码15位 isIDCard18 : 验证身份证号码18位 ...getReplaceAll : 替换所有正则匹配的部分
正则表达式(Regular Expression)是一种模式匹配工具,用于在文本中查找、替换或捕获符合特定规则的字符串。在C#中,正则表达式的操作主要通过`System.Text.RegularExpressions`命名空间下的`Regex`类来实现。 - *...
- `preg_split`:使用正则表达式将字符串分割到数组中。 正则表达式的语法是专门的,需要掌握特殊字符、量词、字符类等构造。在使用正则表达式时,开发者需要构建一个适当的模式(Pattern),它定义了需要匹配的...
不影响标签属性的简易正则替换html字符串中的文字(原理为使用正则取出html中><之间的内容 然后使用循环从其中匹配对应的内容进行替换)
《C#字符串和正则表达式参考手册》是一本专注于C#编程语言中字符串操作和正则表达式的使用指南。本书涵盖了.NET Framework处理文本的方式、String类和StringBuilder类的使用,以及如何在.NET环境中构建和操作字符串...
在本教程中,我们将深入探讨如何使用正则表达式来拆分字符串,这对于数据处理和文本分析尤其有用。下面将详细阐述正则表达式的概念、语法以及如何在不同编程语言中实现字符串的拆分。 1. 正则表达式基础 - **模式...
5. **替换操作**:`Regex.Replace`方法允许我们用新的字符串替换匹配到的模式。例如,`Regex.Replace(input, pattern, replacement)`将输入字符串中所有匹配模式的部分替换为指定的新字符串。 6. **验证输入**:...
在本篇内容中,我们将基于《C#字符串和正则表达式参考手册4》这一资料进行深入探讨,重点讲解如何在Visual Studio 2008环境中有效地使用C#中的字符串处理与正则表达式功能。这不仅对于初学者来说是一份宝贵的资源,...
在VB.Net中,字符串处理和正则表达式是两个至关重要的概念,广泛应用于数据验证、文本处理和信息提取。下面将详细阐述这两个主题。 ### 一、VB.Net字符串 字符串在VB.Net中是不可变的对象,这意味着一旦创建了字符...
在C#中,理解和熟练使用字符串和正则表达式是提升编程效率的关键。这本参考手册详细介绍了这些概念,包括实例和最佳实践,是学习和查找解决方案的宝贵资源。通过深入学习,开发者能够更好地处理文本数据,编写出更...
这本"C#字符串和正则表达式参考手册PDG"详细阐述了这些概念,包括各种方法、类、属性及其使用技巧,对于开发者来说是一份宝贵的参考资料。无论你是初学者还是经验丰富的程序员,都可以从中获益良多,提升自己的编程...
在.NET框架中,VB.NET是一种常用的编程语言,它提供了丰富的字符串操作和正则表达式功能。本参考手册将深入探讨这两个重要概念,并提供详细的实践指导。 字符串是编程中常见的数据类型,用于存储文本信息。在VB.NET...