我在c#中有一组代码我希望将用户在文本框中输入的内容存储到数据库中。
用户像这样进入文本框
input namexyzpan9837663placeofbirthmumbailocationwadala
这是用户输入的内容
(姓名:xyz pan:9837663出生地:孟买地点:wadala)
输出到数据库
xyz 9837663 mumbai wadala
OR
name xyzapan72placeofbirthgoalocationpanji
(>名称:xyza pan:72个出生地:goa位置:panji)
输出到数据库
xyza 72 goa panji
姓名,年龄,地点和地点都是静态的,但内在的价值 它们是动态的
我知道substring是有用的,但我不知道如何使用它。
答案 0 :(得分:3)
如果关键字是静态的,则使用Split
:
string strMain = "namexyzpan9837663placeofbirthmumbailocationwadala";
var results = strMain.Split(new string[] { "name", "pan", "placeofbirth", "location" }, StringSplitOptions.RemoveEmptyEntries);
string name = results[0];
string pan = results[1];
string location = results[2];
你说你不知道如何使用Substring
,这里工作正常:
请注意,此方法的第二个参数是要采用的字符串的长度,而不是要停止的索引。
string strMain = "namexyzpan9837663placeofbirthmumbailocationwadala";
int indexOfName = strMain.IndexOf("name");
int indexOfPan = strMain.IndexOf("pan");
int indexOfBirth = strMain.IndexOf("placeofbirth");
int indexOflocation = strMain.IndexOf("location");
int effectiveIndexOfName = indexOfName + "name".Length;
int effectiveIndexOfPan = indexOfPan + "pan".Length;
int effectiveIndexOfBirth = indexOfBirth + "placeofbirth".Length;
int effectiveIndexOflocation = indexOflocation + "location".Length;
string name1 = strMain.Substring(effectiveIndexOfName, indexOfPan- effectiveIndexOfName);
string pan1 = strMain.Substring(effectiveIndexOfPan, indexOfBirth - effectiveIndexOfPan);
string birth1 = strMain.Substring(effectiveIndexOfBirth, indexOflocation - effectiveIndexOfBirth);
string location1 = strMain.Substring(effectiveIndexOflocation);
namenamepan9837663placeofbirthmumbailocationwadala
使用第二种方法。但namepanpan9837663placeofbirthmumbailocationwadala
是一个有趣的案例,肯定需要一种解决方法。
答案 1 :(得分:2)
Regex专为此类案例而设计。
var input = @"namexyzpan9837663placeofbirthmumbailocationwadala";
var match = Regex.Match(input, @"^\s*"
+ @"name\s*(?<name>\w+?)\s*"
+ @"pan\s*(?<pan>\w+?)\s*"
+ @"placeofbirth\s*(?<placeOfBirth>\w+?)\s*"
+ @"location\s*(?<location>\w+)\s*" + @"$");
var name = match.Groups["name"].Value;
var pan = match.Groups["pan"].Value;
var placeOfBirth = match.Groups["placeOfBirth"].Value;
var location = match.Groups["location"].Value;