相关疑难解决方法(0)

什么是正则表达式平衡组?

我刚刚阅读了一个关于如何在双花括号中获取数据的问题(这个问题),然后有人提出了平衡组.我还不太确定它们是什么以及如何使用它们.

我读了平衡组定义,但解释很难理解,我仍然对我提到的问题感到困惑.

有人可以简单地解释什么是平衡组以及它们如何有用吗?

.net c# regex balancing-groups

88
推荐指数
2
解决办法
1万
查看次数

ASCII"图像"中的"垂直"正则表达式匹配

注意:这是关于现代正则表达口味的可能性的问题.这不是使用其他方法解决这个问题的最佳方法.它受到早期问题的启发,但不仅限于正则表达式.

问题

在ASCII"图像"/ art/map/string中:

....X.......
..X..X...X....
X.X...X..X.....
X....XXXXXX.....
X..XXX...........
.....X..........
..............X
..X...........X....
..X...........X....X...
....X.....
Run Code Online (Sandbox Code Playgroud)

我想找到三个简单的垂直线形式X:

X
X
X
Run Code Online (Sandbox Code Playgroud)

线条的数量在图像中是可变的,每条线条的宽度也是可变的.

问题

使用正则表达式(PCRE/PHP,Perl,.NET或类似)可以:

  1. 确定是否存在这样的形成
  2. 计算这些结构的数量/匹配它们的起点(上例中为4)

.net php regex perl pcre

58
推荐指数
5
解决办法
2591
查看次数

为什么Javascript不支持lookbehind断言?

最近我(通过一些尴尬)意识到正则表达式lookbehind assertions 不可能的Javascript.

这种断言缺席的(事实)理由是什么似乎很常见?

我意识到也许有其他方法可以实现相同的功能,虽然它是工作中禁止功能的基本语义,还是究竟是什么?

似乎一些从正则表达式模式生成Javascript代码的正则表达式测试工具似乎忽略了这个事实 - 这让我觉得有些奇怪.

javascript regex

23
推荐指数
2
解决办法
7002
查看次数

为什么这种反向引用在外观中不起作用?

在正则表达式中匹配重复的字符很简单,使用反向引用:

(.)\1
Run Code Online (Sandbox Code Playgroud)

在这里测试一下.

但是,我想这对角色之后匹配角色,所以我想我可以简单地将它放在一个后视镜中:

(?<=(.)\1).
Run Code Online (Sandbox Code Playgroud)

不幸的是,这与任何事情都不相符.

这是为什么?在其他方面,我不会感到惊讶,因为对lookbehinds有强烈的限制,但.NET通常支持lookbehinds中任意复杂的模式.

.net regex regex-lookarounds

19
推荐指数
1
解决办法
828
查看次数

标签 统计

regex ×4

.net ×3

balancing-groups ×1

c# ×1

javascript ×1

pcre ×1

perl ×1

php ×1

regex-lookarounds ×1