regex - 检查字符串中的值的函数
问题描述
我正在使用一个尝试检查用户在用户目录中的位置的应用程序。
我有类似于以下的字符串:
CN=John Mayor,OU=Users,OU=NA,OU=Local,DC=domain,DC=application,DC=com
或者
CN=Annette Luis Morgant,OU=Users,OU=CH,OU=Local,DC=domain,DC=application,DC=com
我正在尝试在 javascript 中过滤字符串,以便仅打印出second "OU"
的值。因此,对于第一种情况,它将是"NA"
,对于第二种情况,它将是"CH"
。
尝试使用 substring 和 trim 或类似的东西,但我自己很困惑!你能帮助我吗?谢谢!!!!
编辑-----这就是我想要做的:
public class SplitUser {
public static void main(String[] args) {
String MyStringContent = "CN=John Mayor,OU=Users,OU=NA,OU=Local,DC=domain,DC=application,DC=com";
String[] arrSplit = MyStringContent.split(",");
for (int i=0; i < arrSplit.length; i++)
{
System.out.println(arrSplit[i]);
}
//System.out.println(arrSplit[2]);
String p = arrSplit[2].substring(3, arrSplit[2].length());
System.out.println(p);
}}
解决方案
你可以试试这个:
(?:,|^)OU=[^,]+(?=.*?,OU=([^,]+)).*
即使在“OU”中插入了一些其他 FOO=BAR 值,它也会起作用
解释:
(?:,|^) # start by begin of line or ','
OU=
[^,]+ #Anything but a ',' 1 or more times
#We have found 1 OU, let's find the next
(?= # Lookahead expression
.*? # Anything (ungreedy)
,OU=
([^,]+)
)
.* # Anything, just to match the whole line
# and avoid multiple matches for the same line (g flag)
演示在这里
推荐阅读
- php - 从不同的表中查询另一列
- mysql - 无法将节点容器连接到 mysql(本地托管的 mysql)?
- abap - 如何获取最新的 MBEWH~LBKUM 值?
- c++ - 从字符串到整数的转换问题。(来自一对二维向量的字符串)
- powerapps - 我们如何在 Powerapps 中设置权限,使应用程序的创建者只能访问环境内的应用程序?
- javascript - Node.js 承诺 .then() 与定义的函数链接
- python - Pymc3:以随机变量为元素构造矩阵
- google-analytics - 使用交易复制 BigQuery 中的内部促销报告
- html - 当我尝试查询其他国家/地区语言环境 es-es 时,抓取 news.google.com 将 hl 和 ceid 参数添加为 en-us
- flutter - Flutter:防止在 webview 中刷新网站