我有以下字符串......
CN=KendallLDAPTEST Weihe,OU=CORPUSERS,OU=CORP,DC=int,DC=appriss,DC=com
我需要提取KendallLDAPTEST Weihe
换句话说,我需要在第一个=
和第一个,
之间提取所有字符串数据
答案 0 :(得分:5)
经过测试,有效
使用正则表达式:
str = "CN=KendallLDAPTESTWeihe,OU=CORPUSERS,OU=CORP,DC=int,DC=appriss,DC=com"
str[/\=(.*?),/,1]
对于重新使用此功能的任何人,请将here
的两个实例替换为您要在其间找到文本的字符:
[/\here(.*?)here/,1]
答案 1 :(得分:1)
您可以使用split
上的,
简单地拆分字符串,首先生成一对key=value
对,然后在=
上拆分这些对。
str = 'CN=KendallLDAPTEST Weihe,OU=CORPUSERS,OU=CORP,DC=int,DC=appriss,DC=com'
pairs = str.split(',').map { |pair| pair.split('=') }
# => [["CN", "KendallLDAPTEST Weihe"], ["OU", "CORPUSERS"], ["OU", "CORP"], ["DC", "int"], ["DC", "appriss"], ["DC", "com"]]
pairs.first[1]
# => "KendallLDAPTEST Weihe"
这有点天真,因为如果您的任何数据包含转义的=
或,
字符,它就无法使用。
答案 2 :(得分:1)
我使用:
var _ajax = document.createElement('iron-ajax');
_ajax.url = 'url';
_ajax.headers = {"Authorization": "auth (number)"};
_ajax.method = 'GET';
_ajax.handleAs = 'json';
_ajax.debounceDuration = 300;
_ajax.auto = true;
默认情况下,正则表达式将找到第一个匹配然后停止。这只是找到第一个str = "CN=KendallLDAPTEST Weihe,OU=CORPUSERS,OU=CORP,DC=int,DC=appriss,DC=com"
str[/=([^,]+)/, 1] # => "KendallLDAPTEST Weihe"
,然后在第一个=
之前捕获所有不是,
的字符并将其返回。
答案 3 :(得分:0)
如果您要捕获的文本始终显示在同一索引上,则可以使用此文件:
the_text[3...22]