0 0

字符串用正则替换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个答案 按时间排序 按投票排序

0 0

采纳的答案

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
0 0

我看哥们对正则理解还有误,你是不是想找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#中的字符串操作和正则表达式使用,帮助你更好地理解和运用这些工具。 一、C#字符串 1. 字符串基础:在C#中,字符串是不可变对象,这意味着一旦创建,就不能更改。字符串常量通常用双引号括起,...

    VB字符串和正则表达式参考手册

    《VB字符串和正则表达式参考手册》是一本专注于Visual Basic(VB)编程语言中字符串操作和正则表达式使用的专业指南。VB是Microsoft开发的一种编程环境,广泛应用于Windows应用程序的开发,而字符串处理和正则表达式...

    vb.net字符串和正则表达式参考手册.rar

    VB.NET字符串提供了丰富的内置函数和类,使得开发者能够方便地进行字符串操作,而正则表达式则是一种强大的模式匹配工具,用于在文本中查找、替换或提取特定的模式。 VB.NET字符串: 1. **字符串创建与赋值**:在...

    java 字符串 正则表达式 详细实例代码

    - 正则表达式是一种模式匹配工具,用于字符串搜索、替换和提取。Java中的`Pattern`和`Matcher`类用于处理正则表达式。 - `Pattern.compile(regex)`编译正则表达式为模式对象,`Matcher`对象通过`Pattern`对象的`...

    C#字符串和正则表达式参考手册PDF教材,

    C#的字符串和正则表达式结合使用,可以解决许多复杂的文本处理问题,如验证用户输入、数据清洗、文本分析等。在实际开发中,熟练掌握这两部分知识,不仅能提高代码的效率,还能大大增强解决问题的能力。QT38-C#字符...

    Android常用字符串匹配正则

    isMobileSimple : 验证手机号(简单) isMobileExact : 验证手机号(精确) isTel : 验证电话号码 isIDCard15 : 验证身份证号码15位 isIDCard18 : 验证身份证号码18位 ...getReplaceAll : 替换所有正则匹配的部分

    C#字符串和正则表达式参考手册.rar

    正则表达式(Regular Expression)是一种模式匹配工具,用于在文本中查找、替换或捕获符合特定规则的字符串。在C#中,正则表达式的操作主要通过`System.Text.RegularExpressions`命名空间下的`Regex`类来实现。 - *...

    PHP 笔记001 - 字符串、正则表达式

    - `preg_split`:使用正则表达式将字符串分割到数组中。 正则表达式的语法是专门的,需要掌握特殊字符、量词、字符类等构造。在使用正则表达式时,开发者需要构建一个适当的模式(Pattern),它定义了需要匹配的...

    简易正则替换html字符串中的文字(不影响标签属性)

    不影响标签属性的简易正则替换html字符串中的文字(原理为使用正则取出html中&gt;&lt;之间的内容 然后使用循环从其中匹配对应的内容进行替换)

    C#字符串和正则表达式参考手册.pdf

    《C#字符串和正则表达式参考手册》是一本专注于C#编程语言中字符串操作和正则表达式的使用指南。本书涵盖了.NET Framework处理文本的方式、String类和StringBuilder类的使用,以及如何在.NET环境中构建和操作字符串...

    使用正则表达式拆分字符串

    在本教程中,我们将深入探讨如何使用正则表达式来拆分字符串,这对于数据处理和文本分析尤其有用。下面将详细阐述正则表达式的概念、语法以及如何在不同编程语言中实现字符串的拆分。 1. 正则表达式基础 - **模式...

    C#字符串和正则表达式参考手册4

    在本篇内容中,我们将基于《C#字符串和正则表达式参考手册4》这一资料进行深入探讨,重点讲解如何在Visual Studio 2008环境中有效地使用C#中的字符串处理与正则表达式功能。这不仅对于初学者来说是一份宝贵的资源,...

    VB.Net字符串和正则表达式参考手册

    在VB.Net中,字符串处理和正则表达式是两个至关重要的概念,广泛应用于数据验证、文本处理和信息提取。下面将详细阐述这两个主题。 ### 一、VB.Net字符串 字符串在VB.Net中是不可变的对象,这意味着一旦创建了字符...

    C#字符串和正则表达式参考手册.zip

    在C#中,理解和熟练使用字符串和正则表达式是提升编程效率的关键。这本参考手册详细介绍了这些概念,包括实例和最佳实践,是学习和查找解决方案的宝贵资源。通过深入学习,开发者能够更好地处理文本数据,编写出更...

    C#字符串和正则表达式参考手册PDG

    这本"C#字符串和正则表达式参考手册PDG"详细阐述了这些概念,包括各种方法、类、属性及其使用技巧,对于开发者来说是一份宝贵的参考资料。无论你是初学者还是经验丰富的程序员,都可以从中获益良多,提升自己的编程...

    VB.NET字符串和正则表达式参考手册

    在.NET框架中,VB.NET是一种常用的编程语言,它提供了丰富的字符串操作和正则表达式功能。本参考手册将深入探讨这两个重要概念,并提供详细的实践指导。 字符串是编程中常见的数据类型,用于存储文本信息。在VB.NET...

    C# 字符串、正则表达式PPT,相关例子

    以上代码展示了字符串的基本操作和正则表达式的匹配与替换。通过学习这些知识点,你可以更好地处理和分析文本数据,进行更复杂的字符串操作。记住,实践是最好的老师,尝试编写更多的例子来巩固和扩展你的理解。

Global site tag (gtag.js) - Google Analytics