我有如下所示的字符串;
oradb = Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.87.50)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=testdb)));User Id = john; Password=test;
我只想得到'192.168.87.50' , '1521' , 'testdb' , 'john'
从上面的连接字符串并将其放入一些文本框中。
我尝试使用正则表达式进行制作,并了解到使用正则表达式是不可能的。
我该怎么做?
虽然应该有更方便的方法,但您仍然可以使用 RegExp 来实现此目的。
试试这个代码:
var input =
"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.87.50)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=testdb)));User Id = john; Password=test;";
var hostRegx = new Regex("HOST\\s*=\\s*(?<host>[^\\)]+)");
var portRegx = new Regex("PORT\\s*=\\s*(?<port>[^\\)]+)");
var dbRegx = new Regex("SERVICE_NAME\\s*=\\s*(?<db>[^\\)]+)");
var userRegx = new Regex("User Id\\s*=\\s*(?<user>[^;]+)");
var passRegx = new Regex("Password\\s*=\\s*(?<pass>[^;]+)");
var host = hostRegx.Match(input).Groups["host"].Value;
var port = portRegx.Match(input).Groups["port"].Value;
var db = dbRegx.Match(input).Groups["db"].Value;
var user = userRegx.Match(input).Groups["user"].Value;
var pass = passRegx.Match(input).Groups["pass"].Value;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)