当前位置: 首页 > 知识库问答 >
问题:

两个非捕获组之间的组内结果

汪飞捷
2023-03-14

我正在尝试在主组中的两个非捕获组之间捕获模式。
我怎么做?

这里是我的正则表达式的一部分:(?p(?:别名\s+?名称.).*?(?:\n))

我的文本的一部分:别名:公司根CA\n

正确输出:公司根ca

那么谁能解释为什么它不起作用呢?

regex = re.compile(r'(?P<alias>(?:Alias name).*?)(?:\n).*?'
                   r'(?P<entry>(?:Entry type).*?)(?:\n).*?'
                   r'(?P<Owner>(?:Owner).*?)(?:\n).*?'
                   r'(?P<Valid>(?:Valid from).*?[A-Z]{3}\s+?\d+).*?'
                   r'(?P<untin>(?:until).*?[A-Z]{3}\s+?\d+)', re.S)
for k in regex.finditer(text):
    f = k.groupdict()
    f['TimeStamp'] = datetime.datetime.now().strftime('%d.%m.%Y %H:%M')
    f[jksfile] = jksfile
    print(f)  # eventually it will be dictionary

共有1个答案

丌官向荣
2023-03-14
import re
st = 'Alias name: Company root ca\n'
f = re.findall(':(.*)',st)

上面的代码可以很好地工作,不需要复杂。编辑:您只需要表达式':(.*)'对于给定字符串中您需要的数据,如果有多个类似的数据案例,您可以使用某种嵌套的research,首先提取主字符串,然后再提取更具体的

 类似资料:
  • 本文向大家介绍PHP正则表达式之捕获组与非捕获组,包括了PHP正则表达式之捕获组与非捕获组的使用技巧和注意事项,需要的朋友参考一下 今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同时也希望有大神和细心的学习者找到我理解中

  • 这不是重复的...在我看来。我不是在问它的有用性。如果可以的话,我要求澄清定义。不要投反对票,请解释一下。如果我认为这篇文章对其他读者来说很愚蠢,我会删除它。 其中显示是这样的 如果后面是什么?:应为“普通括号的非捕获版本”。匹配括号内的任何正则表达式,但在执行匹配或稍后在模式中引用后,无法检索组匹配的子字符串。” 为什么它仍然返回字符串“animal=”? (Python 3.6.3)f是:

  • 在Python中,如何在非捕获组中捕获组?换句话说,如何重复包含捕获组的非捕获子模式? 例如,捕获导入字符串上的所有包名。例如,字符串: 导入熊猫、操作系统、系统 将返回“pandas”、“os”和“sys”。下面的模式捕获第一个包并到达第二个包: 从这里,我想重复捕获组并匹配以下字符的子模式,即。当我用一个非捕获组包围这个子模式并重复它时: 它不再捕捉里面的群体。

  • 问题:如何首先捕获两个角色之间的组,然后再匹配匹配组中的角色? 给定输入: 问题1:我想捕获两个角色之间的组,无限次。 正则表达式解决方案: 捕获的群体: 问题2:我想匹配捕获组中的一个字符 尝试正则表达式解决方案1: 尝试的正则表达式解决方案2: 我的问题:以上尝试的解决方案都没有捕获输入字符串中的星号。我如何实现这一点?

  • 本文向大家介绍浅谈PHP正则中的捕获组与非捕获组,包括了浅谈PHP正则中的捕获组与非捕获组的使用技巧和注意事项,需要的朋友参考一下 今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同时也希望有大神和细心的学习者找到我理解中