使用C#提取内部带有随机数字的文本
本文关键字:随机 数字 文本 提取 内部 使用 | 更新日期: 2023-09-27 18:20:53
在C#中,如果我有一个长字符串,它总是包含一个格式,如W###S###Q##,其中#可以是任何数字,我如何从字符串中提取W###S##Q##序列。请记住,字符串之前或之后可能有更多内容,但我只对该序列感兴趣。
谨致问候。
Wobbles注释是正确的,像@"W'd{2}S'd{2}Q'd{2}"
这样的正则表达式将满足您的需要。'd
匹配任何一个十进制数字,然后{2}
告诉它精确匹配两次。
这个小提琴举了一个例子,说明如何从较长的琴弦中提取出你想要的琴弦。
Wobbles是对的,正则表达式通常是最好的方法。对于您的特定示例,如果您事先知道W、S、Q部分总是在您可以使用的相同位置:
string testString = "WSomethingW01S02Q03SomethingElse";
bool TheRightString = false;
string WNumString = string.Empty;
string SNumString = string.Empty;
string QNumString = string.Empty;
int StartPosition = 0;
do
{
StartPosition = testString.IndexOf('W', StartPosition);
WNumString = testString.Substring(StartPosition, 3);
SNumString = testString.Substring(StartPosition + 3, 3);
QNumString = testString.Substring(StartPosition + 6, 3);
StartPosition += 1;
if (SNumString.StartsWith("S") && QNumString.StartsWith("Q"))
TheRightString = true;
} while (TheRightString == false);
Console.WriteLine(WNumString + SNumString + QNumString);
Console.ReadKey();