【发布时间】:2017-08-06 15:30:50
【问题描述】:
我希望在我的文本框中允许的格式是逗号分隔列表,后跟逗号分隔列表之间的换行符。这是我希望用户提供的示例:
1,2,3
1,2,4
1,2,5
1,2,6
到目前为止,我已经限制了使用此 ValidationExpression 的用户:
^([1-9][0-9]*[]*[ ]*,[ ]*)*[1-9][0-9]*$
但是,使用该表达式,用户只能输入一行以逗号分隔的数字。
如何通过接受换行符来继续接受多行?
【问题讨论】:
-
您的输入矩阵总是 3x3 还是会改变?它必须是对称的吗?
-
我认为对称会是一个问题,因为正则表达式不擅长计算(它无法计算已经消失了多少数字)。
-
是的,例如 capturing 分隔符并使用对捕获组的反向引用。试试
^(?=.*?([.,]))(?:[1-9][0-9]*(?:[ \t]*\1[ \t]*[1-9][0-9]*)+[ \t]*\r?\n?)*$ -
@justinpees 你可以添加任何你喜欢的分隔符。是的,就像
([., \t])顺便说一句,捕获组位于lookahead 内,之前没有提到过。它仅在开始时触发,并查找放置在组 1(第一个捕获组)中的已放置字符类的第一个匹配项,可通过\1访问。
标签: asp.net regex validation expression