我有一个包含各种符号的字符串,但是我需要一个位于%和%之间的10个字母数字子字符串 - 但是在一个字符串中可能有多个%和%的组合
示例:%bla1234bla%,或%12aa22bb33%等(我不需要%)
我试过了:
String resultString = Regex.Match(lnk, @"\[%\](.*?)\[%\]{10}").Value;
它不起作用
答案 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();