相关疑难解决方法(0)

一个永远不会被任何东西匹配的正则表达式

这可能听起来像一个愚蠢的问题,但我与我的一些开发人员进行了长时间的谈话,这听起来像是一件有趣的事情.

所以; 你的想法是什么 - 正则表达式是什么样的,永远不会被任何字符串匹配!

编辑:我为什么要这个?好吧,首先是因为我发现想到这样一个表达式很有趣,其次因为我需要它来制作一个脚本.

在该脚本中,我将字典定义为Dictionary<string, Regex>.如您所见,它包含一个字符串和一个表达式.

基于该字典,我创建的方法都使用这个字典作为他们应该如何完成工作的参考,其中一个匹配正则表达式与解析的日志文件.

如果表达式匹配,Dictionary<string, long>则为另一个表达式添加表达式返回的值.因此,为了捕获与字典中的表达式不匹配的任何日志消息,我创建了一个名为"unknown"的新组.

对于这个组,添加了与其他任何东西不匹配的所有内容.但是为了防止"未知"表达式(偶然)不匹配日志消息,我不得不创建一个绝对不会匹配的表达式,无论我给它什么字符串.

因此,你有理由这个"不是一个真正的问题"......

regex complexity-theory dictionary

120
推荐指数
16
解决办法
2万
查看次数

参考 - 这个正则表达式意味着什么?

这是什么?

这是常见问答的集合.这也是社区Wiki,因此每个人都被邀请参与维护.

为什么是这样?

患的是给我泽码型的问题和答案不佳,没有解释.此参考旨在提供质量问答的链接.

范围是什么?

此引用适用于以下语言:,,,,,,.

这可能过于宽泛,但这些语言共享相同的语法.对于特定功能,它背后的语言标签,例如:

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

regex

52
推荐指数
1
解决办法
11万
查看次数

Python re.finditer match.groups()不包含匹配的所有组

我试图在Python中使用正则表达式来查找和打印多行搜索中的所有匹配行.我正在搜索的文本可能具有以下示例结构:

AAA
ABC1
ABC2
ABC3
AAA
ABC1
ABC2
ABC3
ABC4
ABC
AAA
ABC1
AAA

从中我想要检索至少出现一次并且前面有AAA的ABC*.

问题是,尽管该团体抓住了我想要的东西:

match = <_sre.SRE_Match object; span=(19, 38), match='AAA\nABC2\nABC3\nABC4\n'>
Run Code Online (Sandbox Code Playgroud)

...我只能访问该组的最后一场比赛:

match groups = ('AAA\n', 'ABC4\n')
Run Code Online (Sandbox Code Playgroud)

下面是我用于此问题的示例代码.

#! python
import sys
import re
import os

string = "AAA\nABC1\nABC2\nABC3\nAAA\nABC1\nABC2\nABC3\nABC4\nABC\nAAA\nABC1\nAAA\n"
print(string)

p_MATCHES = []
p_MATCHES.append( (re.compile('(AAA\n)(ABC[0-9]\n){1,}')) ) #   
matches = re.finditer(p_MATCHES[0],string)

for match in matches:
    strout = ''
    gr_iter=0
    print("match = "+str(match))
    print("match groups = "+str(match.groups()))
    for group in match.groups():
    gr_iter+=1
    sys.stdout.write("TEST GROUP:"+str(gr_iter)+"\t"+group) # test …
Run Code Online (Sandbox Code Playgroud)

python regex

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

标签 统计

regex ×3

complexity-theory ×1

dictionary ×1

python ×1