我有一个包含各种符号的字符串,但我需要一个位于 % 和 % 之间的 10 个字母数字子字符串 - 但一个字符串中可能有多个 % 和 % 的组合
示例:%bla1234bla% 或 %12aa22bb33% 等(我不需要 %)
我试过这个:
String resultString = Regex.Match(lnk, @"\[%\](.*?)\[%\]{10}").Value;
它不起作用
试试这个正则表达式:
@"%[0-9a-zA-Z]{10}%"
或这个:
@"%[^\W_]{10}%"
我不需要 %
您可以使用捕获组来指定要捕获的部分:
@"%([0-9a-zA-Z]{10})%"
在线查看它:ideone
试试这个:
@"%[\da-zA-Z]{10}%"
(?<=%)[\da-zA-Z]{10}(?=%)
通过向前看和向后看,这将匹配 % 字符之间的 10 个字母数字字符,而不实际匹配 % 字符。
不确定是否需要正则表达式,但这似乎有效......
string[] stringArray = testString.Split('%')
.Where(s => s.Length == 10)
.ToArray();