0
我正在用正則表達式來度過一段非常艱難的時光。我正在導致我的單元測試失敗。我嘗試了幾種不同的方式,但沒有成功。也許我錯了。我需要它使用一個詞(小號)或兩個詞與一個空間(法國號角)。正則表達式導致我的失敗單元測試。爲什麼?
說我有一個問題,物業。
public string Name
{
get { return _name; }
set
{
string source = propTI.ToTitleCase(value.Trim());
string pattern = "^[A-Z][a-z]*\\s[A-Z][a-z]*$";
if (Regex.IsMatch(source, pattern))
_name = source;
else
{
throw new ArgumentException("Name must have proper case!");
}
}
}
我也嘗試 「^([A-Z] [A-Z] \ S) $」 作爲圖案。
構造:
public Instrument() : this(DefaultName, DefaultCategory) { }
單元測試:
[TestMethod]
public void Instrument_Name_IsValid()
{
var na = "french";
var goodna = "French";
var inst = new Instrument();
inst.Name = na;
Assert.AreEqual(goodna, inst.Name);
}
我應該使用什麼的正則表達式?由於這些顯然不起作用?
這個問題可能是強制性的空間'\ s' – 2014-12-06 16:44:05
我認爲這可能是一個問題。你怎麼做一個「可能」或有時候空間? – Shades9323 2014-12-06 16:45:17
像這樣:'^ [A-Z] [A-Z] *?(?:\\ S [A-Z] [A-Z] *)$'或與'*'代替'',以允許兩個以上的字。 – 2014-12-06 16:47:07