繁体   English   中英

正则表达式以匹配行数和每行字符

[英]Regular Expression to Match Number of Lines and Characters per Line

我试图确保一个字符串包含0到3行,对于给定的行,它包含0到100个字符。 对于JavaScript和Java,它必须是有效的表达式。 就像许多执行RegEx的人一样,我正在从Internet的各个位置进行复制。

向后工作,我认为^.{0,100}$使我“行包含0到100个字符”,但是尝试将其分组为(^.{0,100}$){0,3}不起作用。

新行字符可能是我的问题的一部分,因此我最终得到了类似.{0,100}(?:\\n.{0,100}){0,2}试图说“ 0至100个字符的行(可选)按0到2个新行实例和0到100个其他字符”,但这也失败了。

直到现在我还是从别人那里得到了这些表情。 我终于使用一个在线测试工具一起摸索了这件事: ^.{0,100}(?:(?:\\r\\n|[\\r\\n]).{0,100}){0,2}$似乎可行。

因此,我的问题是,我是否错过了^.{0,100}(?:(?:\\r\\n|[\\r\\n]).{0,100}){0,2}$任何陷阱米之后? 此外,即使这行得通,也是使用的最佳表达方式吗?

我认为您所拥有的会很好。 如果需要,可以使换行符更加紧凑,如果使用matches()则不需要^$

String regex = ".{0,100}(?:[\r\n]+.{0,100}){0,2}";

编辑

经过更多的思考,我意识到上面的换行符建议将匹配4(或更多)行,只要其中有几行是空的。 因此,我们回到您建议的示例。 哦,好了,至少可以省略开始和结束字符。

String regex = ".{0,100}(?:(?:\r\n|[\r\n]).{0,100}){0,2}";

我不太擅长正则表达式,但这行得通吗?

^.{0,100}\n?(.{0,100}\n)?.{0,100}?$

再次说明,我还是reg exp的新手,所以如果有错误(可能发生),请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM