我的方法是:
\~.*\( 得到 ~K66( 再截取出K66,首尾去掉就行
\(.*\) 得到 (test) 截取出test
我的问题是,你的字符串实例只有K65~K66(test)一个吗,别的字符串实例也是这样的格式xxxx~xxxx(xxxx) 吗??
类似例子格式基本一致 xxx~yyy(zzz),取出yyy与zzz
@NullRookie: 那我觉得完全不用正则表达式也可以啊,用字符串截取就行了。不过我上面的方法也能适用,你可以先去试试。
这是字符串截取,手打的js,没有验证过
var str = "XXX~XXX(XXX)" int len =str.lenght; var res1="";var res2="";int tag=2; for(int i=len-2;i>=0;i--) { if(a[i]!='('&&tag==2) res2+=str[i]; if(a[i]!='~'&&tag==1) res1+=str[i] if(a[i]=='(') tag=1; if(a[i]=='~') break; } alert(res1); alert(res2);
var str = "K65~K66(test)";
var regexPattern = /(K66)[(](.*)[)]/gm
var match = regexPattern.exec(str);
console.log(match[1]+"\n"+match[2])
完美获取你要的匹配。
结果为:
//Result
"K66
test"
这样k66就写死了么?我需要xxx~yyy(zzz),取出yyy与zzz通用方法
@NullRookie: 所以我刚才问你,你就给我一个这个实例!!
@NullRookie: 稍微修改一下就可以了
var str2 = "K1243124~K325123525(klasjfksdjfkls)"
var regexPattern = /[~](.*)[(](.*)[)]/gm
var match1 = regexPattern.exec(str2);
console.log(match1[1]+"\n"+match1[2]);
其实没太看懂,你能给出一个实例和具体你期望获得的值吗?
– BUTTERAPPLE 6年前@BUTTERAPPLE: 例子:K65~K66(test);期望获得的值:①K66,②test
– NullRookie 6年前