誰能幫我做一個正則表達式或給我一個很好的解決方案,可以分割/檢查以下字符串:幫助製作一個好的正則表達式?
「< 2342Flsdn3Z> < 9124Fsflj20>」
一切都開始於一個「<」和6 caracter是一個「F」,字符串以「>」結尾 是否有可能使正則表達式可以找到像這樣的「字符串」?
誰能幫我做一個正則表達式或給我一個很好的解決方案,可以分割/檢查以下字符串:幫助製作一個好的正則表達式?
「< 2342Flsdn3Z> < 9124Fsflj20>」
一切都開始於一個「<」和6 caracter是一個「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之前
\d{4}
或[0-9]{4}
[\dA-Z]{6}
RegexOptions.IgnoreCase
(.NET),或使用[a-zA-Z]
容易:
<\d{4}F\w+>
或者,只得到字符串:
(?<=<)\d{4}F\w+(?=>)
我正在做一些假設,括號內的一切必須是一個單詞字符和尾隨括號前至少有一個,但也許是任意數量的單詞字符。
var regex = new Regex("<\w{4}F\w+>");
是的。 <[A-Za-z\d]{4}F[A-Za-z\d]{6}>
<後跟任意4個字母或數字後用F後跟任意6個字母或數字遵循>
我的假設它的F.後,總是停在六,您可以修改重複,以滿足您的需求。
原提議的解決方案以節約有效的註釋,以便其他人可以從我的錯誤中學習:[\d\w]{4}F[\d\w]{6}>
\ w將匹配字母或數字以及下劃線。 – tvanfosson
非常感謝您的糾正。 –
這將匹配標點符號以及數字和字母 - 這可能是好的,但你應該意識到這一點。 – tvanfosson
@tvanfosson同意,我保持開放,因爲OP沒有具體說明:) –