早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求一正则表达式匹配N*N矩阵.例如:3阶1000100014阶1001010100100011要求:1.行列数都为N,N是变量.2.匹配数字"0""1""空格""换行"//^[01\r\n]*$这是我上一次求助过的答案.3.矩阵元素为个位数

题目详情
求一正则表达式 匹配N*N矩阵.
例如:
3阶
1 0 0
0 1 0
0 0 1
4阶
1 0 0 1
0 1 0 1
0 0 1 0
0 0 1 1
要求:1.行列数都为N,N是变量.
2.匹配数字 "0" "1" "空格" "换行"//^[01 \r\n]*$这是我上一次求助过的答案.
3.矩阵元素为个位数0或1,矩阵元素之间必须有空格.
因为对正则表达式不熟悉,表达不对或幼稚的地方,请见谅.
▼优质解答
答案和解析
上次那个就是我写的,看来不太好使,呵呵.
首先说明一点,正则本身没有计数的功能,所以没办法根据列数去限定行数.
我觉得可以这样解决:
正则本身匹配由 "0" "1" "空格" "换行"按你要求的方式组成的矩阵,行列数则用程序指定.
^([01]( [01]){N-1})((\r?\n)([01]( [01]){N-1})){N-1}$
上面这个正则匹配满足你要求的N阶矩阵,根据需要用程序控制正则中N-1的值即可.
如:
^([01]( [01]){3})((\r?\n)([01]( [01]){3})){3}$
能匹配你例子中的4阶矩阵.