如何表達字符串匹配以下內容的正則表達式。正則表達式 - 文本,文本,數字
text, text, number
注:
文本=可以是單詞或空間的任何量。
number =大多數是4位數字。
逗號(,)也必須匹配。
作爲一個例子,下面的字符串是有效的:
'Arnold Zend, Red House, 2551'
如何表達字符串匹配以下內容的正則表達式。正則表達式 - 文本,文本,數字
text, text, number
注:
文本=可以是單詞或空間的任何量。
number =大多數是4位數字。
逗號(,)也必須匹配。
作爲一個例子,下面的字符串是有效的:
'Arnold Zend, Red House, 2551'
爲正則表達式模式將是(括號中,捕獲組,如果你要訪問的個別項目:
([a-zA-Z\s]{3,}), ([a-zA-Z\s]*{3,}), ([0-9]{4})
它匹配2個名字和一個由逗號分隔的4位數字,至少3個字符長度的名稱,如果你願意,可以改變名字字符的最小值,這是如何檢查一個字符串是否與此匹配圖案:
// 'Regex' is in the System.Text.RegularExpressions namespace.
Regex MyPattern = new Regex(@"([a-zA-Z\s]*), ([a-zA-Z\s]*), ([0-9]{4})");
if (MyPattern.IsMatch("Arnold Zend, Red House, 2551")) {
Console.WriteLine("String matched.");
}
我用RegexTester測試了表達式,它工作正常。
當這些單詞不存在時,這個正則表達式不會返回true嗎?例如=「,,1234」 –
@PaulMcLean其實是的,我忘了在那裏設置一個限制,這裏是避免這個問題的正則表達式:'([a-zA-Z \ s] {3,}),([a -zA-Z \ s] * {3,}),([0-9] {4})'這個正則表達式確保單詞長度至少爲3個字符,如果您願意,可以更改數字。 –
嘗試此 -
[\w ]+, [\w ]+, \d{4}
'\ w'允許有下劃線,並且不允許有空格。 –
([A-ZA-Z \ S] +),([A-ZA-Z \ S] +),([0-9] {4})
'[a-zA-Z] +'不包含名稱中的空格。 –
我會使用正則表達式:
(?<Field1>[\w\s]+)\s*,\s*(?<Field2>[\w\s]+)\s*,\s*(?<Number>\d{4})
\w
=所有字母(大寫和小寫字母)和下劃線。 +
表示一個或多個。
\s
=空白字符。 *
表示零或更多。
\d
= 0到9的數字。{4}
表示它必須準確地爲四個。
(?<Name>)
=要匹配的捕獲組名稱和模式。
您可以在System.Text.RegularExpressions
命名空間與Regex
對象用這個,像這樣:
static readonly Regex lineRegex = new Regex(@"(?<Field1>[\w\s]+)\s*,\s*(?<Field2>[\w\s]+)\s*,\s*(?<Number>\d{4})");
// You should define your own class which has these fields and out
// that as a single object instead of these three separate fields.
public static bool TryParse(string line, out string field1,
out string field2,
out int number)
{
field1 = null;
field2 = null;
number = 0;
var match = lineRegex.Match(line);
// Does not match the pattern, cannot parse.
if (!match.Success) return false;
field1 = match.Groups["Field1"].Value;
field2 = match.Groups["Field2"].Value;
// Try to parse the integer value.
if (!int.TryParse(match.Groups["Number"].Value, out number))
return false;
return true;
}
要兼容Unicode:
^[\pL\s]+,[\pL\s]+,\pN+$
...在哪種語言,你的編程?並非所有正則表達式都是相同的。 – Johnsyweb
我在C#編程# – user1384603
嘗試尋找一個起點:http://msdn.microsoft.com/en-us/library/az24scfc.aspx – Tebc