我正在寻找一个可以解析以下字符串值的正则表达式:

CN=Entrust Certification Authority - L1K,OU=(c) 2012 Entrust\, Inc. - for authorized use 
only,OU=See www.entrust.net/legal-terms,O=Entrust\, Inc.,C=US

以下正则表达式适用于名称中不带逗号的属性:

C=(.*?)(?:,|$)

这将成功地从该字符串中提取值US.问题从OU值开始.

有没有人知道如何检索包含逗号的值?

推荐答案

您可以使用

\bOU=([^,\\]*(?:\\.[^,\\]*)*)

请看regex demo.

Details:

  • \b-一个词的边界
  • OU=-文字OU=字符串
  • ([^,\\]*(?:\\.[^,\\]*)*)-组1:\,以外的任何零个或多个字符,然后零个或多个任何转义字符的重复(换行符除外,如果您还需要匹配\n,请在模式前面加上(?s)),然后是\,以外的零个或多个字符.

下面是带有后视的相同正则表达式的变体:

(?<=\bOU=)[^,\\]*(?:\\.[^,\\]*)*

Java相关问答推荐

BiPredicate和如何使用它

scanner 如何在执行hasNextLine一次后重新读取整个文件?

Java中后期绑定的替代概念

扩展到弹出窗口宽度的JavaFX文本字段

如何在运行时动态创建表(使用Java、JPA、SprringBoot)

使用GridBagLayout正确渲染

生成桥方法以解决具有相同擦除的冲突方法

Jolt变换JSON数组问题

如何在一行中使用Dijkstra中的Java Stream

为什么我的回收视图会显示重复的列表?

Java SSLKeyManager出厂密码

如何读取3个CSV文件并在控制台中按顺序显示?(Java)

删除打印语句会影响功能...腐败在起作用?

如何在EL处理器中定义带有命名空间的变量?

在Spring Boot JPA for MySQL中为我的所有类创建Bean时出错?

每次我需要时创建和关闭数据库连接会有什么效果吗?

从字节数组切换到JakartaMail org.springframework.mail.javamail.JavaMailSender InputStreamResource

如果c不为null,Arrays.sort(T[]a,Comparator<;?super T>;c)是否会引发ClassCastException?

在输入端没有可行的替代方案'; Select *';

如何组合Mono和Flux