任何人都可以帮我制作正则表达式或者给我一个可以拆分/检查以下字符串的好解决方案:
“< 2342Flsdn3Z>< 9124Fsflj20>” 中
一切都以“<”开头并且6个字符是“F”,字符串以“>”结尾 是否有可能制作出能够找到“字符串”的正则表达式?
答案 0 :(得分:5)
这个怎么样:<.{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在你指定的位置,我就用我的模式回复任何角色。
为了获得更好的正则表达式,你可以告诉我们很多事情:
\d{4}
或[0-9]{4}
[\dA-Z]{6}
RegexOptions.IgnoreCase
(.NET)或使用[a-zA-Z]
答案 1 :(得分:1)
是。 <[A-Za-z\d]{4}F[A-Za-z\d]{6}>
&LT;然后是任意4个字母或数字,后跟F,后跟任何6个字母或数字,后跟&gt;
我假设它在F之后总是六次。你可以修改重复以满足你的需要。
保存有效评论的原始建议解决方案,以便其他人可以从我的错误中吸取教训:[\d\w]{4}F[\d\w]{6}>
答案 2 :(得分:0)
易:
<\d{4}F\w+>
或者,只是得到字符串:
(?<=<)\d{4}F\w+(?=>)
答案 3 :(得分:0)
我做了一些假设,括号内的所有内容都需要是一个单词字符,并且在尾随括号之前至少有一个,但可能是任意数量的单词字符。
var regex = new Regex( "<\w{4}F\w+>" );