mof*_*tje 2 regex line maxlength
我很想拥有一个正则表达式,它可以允许以下操作:
每行的最大长度为10的文本,而总字符数最多为30(假设为30)。
例如,这将是一些有效的输入:
1)
1234567890
Run Code Online (Sandbox Code Playgroud)
2)
123456789
1234567890
Run Code Online (Sandbox Code Playgroud)
3)
12
123456
12456
Run Code Online (Sandbox Code Playgroud)
这将是一些无效的输入:
1)
12345678901
Run Code Online (Sandbox Code Playgroud)
2)
1234567890
1234567890
1234567890
Run Code Online (Sandbox Code Playgroud)
(请注意,由于换行,无效的示例2超过了30个字符的限制)
到目前为止,我所拥有的是这个Regex:(在这里进行^([^\r\n]{0,10}(\r?\n|$)){5}$测试)
它几乎可以满足我的要求,但是最大输入是5行而不是30个字符。我已经在这个正则表达式上付出了很多努力,但是现在我陷入了困境。
我的Regex总共需要匹配30个字符,需要进行哪些修改?
添加先行在您的正则表达式:
^(?=[\s\S]{1,30}$)([^\r\n]{0,10}(\r?\n|$)){5}$
Run Code Online (Sandbox Code Playgroud)
一个Perl脚本:
my $re = qr~^(?=[\s\S]{1,30}$)([^\r\n]{0,10}(\r?\n|$)){5}$~;
my @data = (
'12
123456
12456',
'12345678901');
for my $str(@data) {
say $str, ' : ',($str =~ $re ? 'OK' : 'KO');
}
Run Code Online (Sandbox Code Playgroud)
输出:
12
123456
12456 : OK
12345678901 : KO
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1108 次 |
| 最近记录: |