[英]Regular expression causing my failing unit tests. Why?
我在正則表達式方面很難過。 我的導致我的單元測試失敗。 我嘗試了幾種不同的方法,但均未成功。 也許我要去做錯了。 我需要它使用一個單詞(小號)或兩個單詞之間加一個空格(法國號)。
我遇到問題的財產。
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!");
}
}
}
我也嘗試過使用“ ^([AZ] [az] \\ 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);
}
正則表達式應該使用什么? 既然這些顯然行不通?
Casimir et Hippolyte有答案:
^[A-Z][a-z]*(?:\\s[A-Z][a-z]*)*$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.