我想要一個c#正則表達式來確定一個字符串是否包含定義的序列中的5個以上的字符。正則表達式匹配5個字符的序列
示例:如果序列是字母表,那麼'ghijk'將是true,而'lmn'將是false。
編輯:序列需要按順序。從上面的例子'ghijz'將返回false。
我想要一個c#正則表達式來確定一個字符串是否包含定義的序列中的5個以上的字符。正則表達式匹配5個字符的序列
示例:如果序列是字母表,那麼'ghijk'將是true,而'lmn'將是false。
編輯:序列需要按順序。從上面的例子'ghijz'將返回false。
你不一定需要一個正則表達式來實現:
bool IsInSequence(string str, string sequence)
{
return str != null && str.Length >= 5 && sequence.Contains(str);
}
除非我失去了你要在這裏完成的。
[a-zA-Z]{5,}
這可以匹配任何5個或更多字母的字符串,但OP需要字符串來匹配序列的一部分,這意味着字符串必須按順序排列。 – 2009-08-04 17:44:34
使用Contains()
,而不是一個正則表達式:
string sequence = "abcdef"
bool match = ("abcdefghijklmnopqrstuvwxyz".contains(sequence)
&& sequence.Length >= 5);
你最好沒有一個正則表達式,你在做什麼。
如果序列需要按順序排列,那麼用正則表達式無法完成要查找的內容。正則表達式只能對字符進行模式匹配,並且不能在序列上放置含義(例如排序)。
字符串的內容是否必須包含序列中的順序元素,還是僅包含任何元素?換句話說,如果序列是字母表,字符串「pdrqa」是否匹配? – 2009-08-04 17:28:45
pdrqa將是錯誤的,因爲它不符合序列的順序。 – Thad 2009-08-04 17:37:42