我正在尝试编写一段代码,告诉用户字符串是否以特定方式格式化。格式如下所示(它是一个圆圈):
######\n
### ###\n
# #\n
# #\n
# #\n
# #\n
# #\n
### ###\n
######\n
\n为清楚起见,此处包含换行符;#字符可以是现有字符类中的任何字符。
我想要做的是检查一个字符串(来自文件)是否包含一个或多个这样的“圆”。应该像这样分隔多个圆圈:
# #\n
### ###\n
######\n
\n
######\n
### ###\n
# #\n所以这就是我尝试过的:
isCircle = "( #{get_i}{6}\n"
isCircle += " #{get_i}{3} #{get_i}{3}\n"
isCircle += " #{get_i} #{get_i}\n"
isCircle +=("#{get_i} #{get_i}\n"*3)
isCircle += " #{get_i} #{get_i}\n"
isCircle += " #{get_i}{3} #{get_i}{3}\n"
isCircle = " #{get_i}{6}\n\n?)*"
isCircle = Regexp.new(isCircle)(get_i是一个返回前面提到的字符类、正确转义和所有内容的方法)
然而,当对一个不正确的输入字符串进行测试时,它仍然告诉我有一个匹配。我做错了什么?我如何才能正确地执行比赛?
发布于 2014-09-08 03:24:06
也许是这样的:
[ ]+#{6}[\n ]+#{3}[ ]+#{3}[\n ]+(?>#[ ]+#[\n\s]+)+#{3}[ ]+#{3}[\n\s]+#{6}\s*Demo
https://stackoverflow.com/questions/25713670
复制相似问题