首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用(或至少)一个行间隔来查找n个字符

用(或至少)一个行间隔来查找n个字符
EN

Stack Overflow用户
提问于 2014-09-30 10:46:31
回答 3查看 326关注 0票数 3

我在设计正则表达式时遇到了问题。我甚至不确定这是否有可能。

我想匹配n个字符,但其中之一必须是换行符(或任何定义的字符)。

这是我的意见:

代码语言:javascript
运行
复制
0000000
0000000
000A000
00AB000
AAAB000
ABBB000

我的(不工作的)正则表达式是

代码语言:javascript
运行
复制
.*A.{5}A.{5}A.{5}A.*

仅将模式更改为DOTALL是不够的,因为我必须确保每个匹配的A之间有一个行间隔。

我只想知道我的输入是否匹配,我不想提取任何东西。

我想检查我的输入中是否有一个A-diagonal。

EN

回答 3

Stack Overflow用户

发布于 2014-09-30 11:53:10

对于DOTALL,.也在换行符中进行计数。您可能希望使用A(?:[\r\n]*[^\r\n]){5},其中我将[\r\n]用作换行符,而将否定[^\r\n]用作非换行符。

在此之前或之后,对任意数量的任何字符至少重复4次:

代码语言:javascript
运行
复制
.*?(?:A(?:[\r\n]*[^\r\n]){5}[\r\n]*){4,}.*

另外,还可以在前瞻之后使用负的A来验证,没有至少7个字符的序列没有换行符:(?![^\r\n]{7}),因此模式如下:

代码语言:javascript
运行
复制
.*?(?:A(?![^\r\n]{7})(?:[\r\n]*[^\r\n]){5}[\r\n]*){4,}.*

regex101测试

票数 3
EN

Stack Overflow用户

发布于 2014-09-30 11:36:05

下面的regex将确保A之间有一个换行符。

代码语言:javascript
运行
复制
(?:(A)(?:(?=.*?\n)(?=.*?.).){6}){1,}(?=(A))

演示

票数 1
EN

Stack Overflow用户

发布于 2014-09-30 11:15:38

代码语言:javascript
运行
复制
^[^A]*|(A.{6})

尝试this.This将与您的input.Because匹配,有一个\n .{5}正在创建problems.When,您将其更改为.{6}哟,得到正确的input.See,captures.Do不要忘记添加sg修饰符。

见演示。

http://regex101.com/r/nA6hN9/46

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26118838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档