匹配%和%之间的任何10个字母数字组合

时间:2012-05-05 21:40:09

标签: c# regex

我有一个包含各种符号的字符串,但是我需要一个位于%和%之间的10个字母数字子字符串 - 但是在一个字符串中可能有多个%和%的组合

示例:%bla1234bla%,或%12aa22bb33%等(我不需要%)

我试过了:

String resultString = Regex.Match(lnk, @"\[%\](.*?)\[%\]{10}").Value;

它不起作用

4 个答案:

答案 0 :(得分:6)

试试这个正则表达式:

@"%[0-9a-zA-Z]{10}%"

或者这个:

@"%[^\W_]{10}%"
  

我不需要%

您可以使用捕获组来指定要捕获的部分:

@"%([0-9a-zA-Z]{10})%"

查看在线工作:ideone

答案 1 :(得分:1)

试试这个:

@"%[\da-zA-Z]{10}%"

答案 2 :(得分:1)

(?<=%)[\da-zA-Z]{10}(?=%)

通过查看正向前瞻和后瞻性,这将匹配%字符之间的10个字母数字字符,而不实际匹配%字符。

答案 3 :(得分:1)

不确定是否需要正则表达式,但这似乎有用......

string[] stringArray = testString.Split('%')
                                 .Where(s => s.Length == 10)
                                 .ToArray();