1

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

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

我试过这个:

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

它不起作用

4

4 回答 4

6

试试这个正则表达式:

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

或这个:

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

我不需要 %

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

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

在线查看它:ideone

于 2012-05-05T21:40:57.967 回答
1

试试这个:

@"%[\da-zA-Z]{10}%"
于 2012-05-05T21:44:59.873 回答
1
(?<=%)[\da-zA-Z]{10}(?=%)

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

于 2012-05-05T21:56:52.413 回答
1

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

string[] stringArray = testString.Split('%')
                                 .Where(s => s.Length == 10)
                                 .ToArray();
于 2012-05-06T04:02:53.947 回答