Tho*_*hle 0 regex string-matching
是否有可能创建一个匹配所有字符串与五个a和五个b的正则表达式?
像aaaaabbbbb或ababababab或aabbaabbab.
我想它确定性引擎需要多项式时间.
是否有其他匹配的语言可以实现这种匹配?
更新:
我想使用这种表达式进行搜索,所以我改变了目的(?=b*ab*){5}(?=a*ba*){5}([ab]{10}),它很好用!:)我仍然不确定对表达式的表现.但我想我可以只查看前瞻性的表达方式.
我仍然很好奇哪些其他类型的模式,那些很容易解释但难以正则表达式的模式在那里?
我有这些螺丝.要把它们钉在这块木头上,我应该用爪子还是用圆锤锤?
那(大致)你的问题是什么.你应该做的只是循环遍历字符串的每个字符.我可以用C做.观察:
int validate(char *s)
{
int a = 0, a = 0;
while(*s)
{
switch(*s++)
{
case 'a':
a++;
break;
case 'b':
b++;
break;
}
}
return a == 5 && b == 5;
}
Run Code Online (Sandbox Code Playgroud)
您可以将它转换为您选择的语言,b)将其修改为仅匹配'a'和'b'的连续序列(如果您愿意)或将其调整为您的其他特定要求.
基本的一点是,这个工作有比正则表达式更好的工具,所以除非"a"和"b"代表更复杂的正则表达式,否则不要使用正则表达式.即使"a"和"b"真的是更复杂的正则表达式,你也不必用One Regex来解决所有问题.你可以混合一些有用的正则表达式和一个代码循环(如上所述),比一个巨大的(并且不可维护的)Regex-zilla更有效.
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |