任何人都可以帮我制作一个正则表达式或给我一个可以拆分/检查以下字符串的好解决方案:
“<2342Flsdn3Z><9124Fsflj20>”
一切都以“<”开头,第 6 个字符是“F”,字符串以“>”结尾 是否有可能制作一个可以找到这样的“字符串”的正则表达式?
最佳答案
这个怎么样:<.{4}F[^>]+>
匹配开头<
,后跟任意 4 个字符,F,然后是任何字符,直到结束 >
(通过匹配任何不是 >
的东西)。
string input = "<2342Flsdn3Z><9124Fsflj20>";
string pattern = "<.{4}F[^>]+>";
foreach (Match m in Regex.Matches(input, pattern))
{
Console.WriteLine(m.Value);
}
编辑:制作好的正则表达式的一部分是清楚地指定您要匹配的模式。例如,您对问题的措辞方式遗漏了某些细节。只要 F 在您指定的位置,我就会用我的模式来匹配任何字符。
要获得更好的正则表达式,您可以告诉我们一些事情:
- F 之前的字符将始终为数字且长度为 4:
\d{4}
或[0-9]{4}
- F 之后的字符长度为 X(6?)并且只能是数字和字母:
[\dA-Z]{6}
- 不区分大小写:使用
RegexOptions.IgnoreCase
(.NET) 或使用[a-zA-Z]
- 陈述你的意图:你匹配它吗?试图提取内在值(value)? split 是什么意思? split 什么?
- 指定您使用的语言:C#、Python、Perl 等(您使用的是这一语言)
关于c# - 帮助制作一个好的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2168867/