java - 用于匹配行数和每行字符数的正则表达式

标签 java javascript regex

我试图确保一个字符串包含 0 到 3 行,并且对于存在的给定行,它包含 0 到 100 个字符。它需要是 JavaScript 和 Java 的有效表达式。和很多做 RegEx 的人一样,我从互联网上的各个地方复制。

向后工作我认为 ^.{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}";

关于java - 用于匹配行数和每行字符数的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21448378/

相关文章:

jQuery+正则表达式 : Need help in creating regex

javascript - 在 React Native 中使用不同文件中的函数不起作用

javascript - Canvas 上的对 Angular 线以不同的颜色/不透明度绘制

javascript - 使用正则表达式返回新文件名

java - 使用经典排列的加密

javascript - HTMLBars 渲染测试

JavaScript 正则表达式 : R naming conventions

java - 如何更改进度栏对话框中的信息图标?

java - SPRING和Gradle项目

java - Java中如何找到数组中的最大值?