我现在有this validation expression,我使用来验证一个完整的字符串:(感谢许多人,包括@CinCout)如何在不中断当前验证的情况下在每行末尾添加符号?
^((P * \开始{(矩阵|矩阵* | pmatrix | pmatrix *? | | bmatrix | bmatrix * | Bmatrix | Bmatrix * | vmatrix | vmatrix * | Vmatrix | Vmatrix * | \ left | \ right)}(?:{c +})?\ s(?:(?: * one | two | three ){0,3} ( - ?\ d *)?(?: &?|(\\ * \ n)))+ * \ end {\ g} \ s?)| \ s \ $ \ s *(?P> matrix)\] \ s *(?P> matrix)* \ $ \ * \ $ \ $ \ s(?P> matrix)\ $ \ $ | \ s \ [\ \ s \(\ s *(?P> matrix)* \))$
我目前强制用户在每行数字后输入“\”。我意识到这对我来说不起作用,因为最后一行数字通常没有“\”。
前段时间有人告诉我,用正则表达式很难保持计数。这意味着正则表达式不可能知道最后一行是什么。所以我唯一的选择是让这些“\”是可选的。
我试过几乎所有的试验和错误(因为我仍然是一个初学者),使这些“\”可选,而不会中断我的其他验证。 (我不想让任何其他地方的换行符,然后我现在允许他们。)有人可以看看我的正则表达式验证,并帮助我吗?我想,我需要重新安排一些括号,但我放弃了每一个组合...
这里有一对夫妇的文本的例子我想通过:
$$
\begin{matrix}{ccc}
10000 & 4 & 3
1 & -2 & 4
1 & 2 & 5
\end{matrix}
$$
$$
\begin{pmatrix}
1 & & 3 \\
1 && two 4 \\
one1 & 2 & -5
\end{pmatrix}
$$
$$
\begin{pmatrix}
1 & 2 & 3 \\
1 & 2 & 4 \\
1 & 2 & -5
\end{pmatrix}
$$
$$
\begin{pmatrix}
1 & 2 & 3
1 & 2 & 4
1 & 2 & -5
\end{pmatrix}
$$
这里是什么我不希望通过:
$$
\begin{pmatrix}
1 &
2 & 3 \\
1 &
2 & 4 \\
1 & 2 &
-5 \\
\end{pmatrix}
$$
$$
\begin{pmatrix}
1 & 2 & 3 \\
1 & 2 & 4 \\
1 & 2 & -5 \\
\end{pmatrix}
$$
基本上我不想让任何跳过线行完成或双跳过线的任何位置之前,同时保持一切完好无损。
包含数字应当在这些方式1结束的每一行:
1)的行与多个
2)行结尾结束 “\”
3)的行与“& &”或结束“& &”
我总是试图给用户尽可能多的空间,因为他们要在元素之间的连排结束后。
我将不胜感激!
我试过了,但它破坏了验证的其余部分。例如现在你可以在数字和行之间有换行符。在这个问题中,我忘记提及如果可能的话,我不想在这些地方换行。 – justinpees
编辑您的问题以提供您想要通过的文本示例,以及您不需要的文本示例。 – CinCout
我在编辑中提供了一些示例。 – justinpees