正则表达式 - 在特定序列后提取其余字符串

时间:2016-06-24 15:56:31

标签: c# regex string

我有一个包含随机字母,数字和空格的长字符串。

我需要一个正则表达式来在字符和数字序列之后拉出字符串的一部分 - > AQ102

例如:

string t = "kjdsjsk158dfdd 125.196.168.210helloAQ102Lab101 section2";

期望的输出:

  

Lab101第2节

3 个答案:

答案 0 :(得分:2)

为什么不使用

string s = t.Split("AQ102").Last();

答案 1 :(得分:0)

不需要正则表达式。一个简单的拆分就足够了:

string output = input.Split(new string[] { "AQ102" }, StringSplitOptions.None)[1];

根据您对输入的确定程度,您可能需要先检查AQ102是否存在,或者甚至计算多少次......但正如我所说,取决于您的情况。

答案 2 :(得分:0)

或者,正如最初要求的正则表达式:

Regex regEx = new Regex(@".*(AQ102.*)");

OR

Regex regEx = new Regex(@".*(AQ102)(.*)");

你可以让比赛做到以下几点:

Matches matches = regEx.Matches(t);

您可以通过引用第一个索引来获得匹配:

matches[1]

或者,如果你真的很自信:

string val = regEx.Matches(t)[1].Value;