我有一個正則表達式的列表,我遍歷它來找到匹配的字符串模式。如何獲得匹配整個字符串,而不是隻是部分?
我想獲得與「00000.00」完全匹配的正則表達式的索引,但是,0的正則表達式也返回true,但只應返回true,如果有一個數字或長度爲5的字符串或6.
含義,12345和123456應該是有效的,但12345.0或123456.0不應該。
List<Regex> regexPatterns = new List<Regex>{
new Regex(@"\b\d{5,6}\b"), // 0
new Regex(@"\b\d{5,6}[.](00)\b") // 1
}
string text = "00000.00";
for(int i = 0; i < regexPatterns.Count; i++) {
if(regexPatterns.IsMatch(text)) return i;
}
這使對00000.00返回0時,我希望它返回1
**該指數具有意義,所以他們重新排序是沒有做不到的。
我覺得這裏的問題是,在期間充當字boundry導致比賽對你的第一個表情發生。如果您可以反轉表達式並首先測試較長的表達式,那麼您應該在它上面找到匹配。 – StuffOfInterest 2014-09-30 20:57:55