Using Regex to determine if string contains a repeated sequence of a particular substring with comma separators and nothing else
我想找出一个字符串是否包含一个已知子字符串(带逗号分隔符)的重复序列,如果是这种情况,则返回true;否则返回false。例如:子字符串为"0,8"
字符串A:"0,8,0,8,0,8,0,8"返回true字符串B:"0,8,0,8,1,0,8,0"由于"1"而返回false
我尝试使用C_string函数contains,但它不符合我的要求。我对正则表达式完全陌生,但我觉得它应该足够强大。我应该用什么regex来做这个?
对于只包含给定子串的重复数(可能为零,导致空字符串)的字符串,其模式是
但实际上字符串不匹配
你可以在C中构建这样一个东西,因此:
1 2 3 4 5 6 7 | string OkSubstring ="0,8"; string aOk ="0,8,0,8,0,8,0,8"; string bOK ="0,8,0,8,1,0,8,0"; Regex OkRegex = new Regex( @"\A" + OkSubstring +"(?:," + OkSubstring + @")*\z" ); OkRegex.isMatch(aOK); // True OkRegex.isMatch(bOK); // False |
硬编码逗号分隔符;您可以使其更通用。或者你只需要字面上的regex。不管怎样,这就是你需要的模式。
编辑根据迈克·塞缪尔的建议更改了锚定。