Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >查找组和非捕获组之间的功能差异?

查找组和非捕获组之间的功能差异?
EN

Stack Overflow用户
提问于 2017-08-29 17:18:51
回答 1查看 748关注 0票数 9

为了进一步了解它们的用法,我正在尝试想出一个例子,在这个例子中,积极的环视是有效的,但非捕获组不起作用。我想出的例子也适用于非捕获组,所以我觉得我没有完全掌握积极环视的用法。

下面是一个字符串(取自一个SO示例),它在答案中使用了积极的向前看。用户想要获取第二个列值,前提是第一列的值以ABC开头,并且最后一列的值为'active‘。

代码语言:javascript
运行
AI代码解释
复制
string ='''ABC1    1.1.1.1    20151118    active
          ABC2    2.2.2.2    20151118    inactive
          xxx     x.x.x.x    xxxxxxxx    active'''

给出的解决方案使用了“积极向前看”,但我注意到我可以使用非捕获小组来得出相同的答案。所以,我在想一个例子时遇到了麻烦,在这个例子中,积极的环视是有效的,而非捕获组是无效的。

代码语言:javascript
运行
AI代码解释
复制
pattern =re.compile('ABC\w\s+(\S+)\s+(?=\S+\s+active)') #solution

pattern =re.compile('ABC\w\s+(\S+)\s+(?:\S+\s+active)') #solution w/out lookaround

如果有人愿意提供一个例子,我将不胜感激。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-29 17:32:28

根本的区别在于,未捕获的组仍然使用它们匹配的字符串部分,从而使光标向前移动。

这会产生根本差异的一个例子是,当您尝试匹配某些字符串时,这些字符串被某些边界包围,这些边界可以重叠。示例任务:

匹配给定字符串中由bs包围的所有a-给定的字符串为bababaca。应该有两场比赛,分别在位置2和4。

使用lookarounds这是相当简单的,你可以使用b(a)(?=b)(?<=b)a(?=b)来匹配它们。但是(?:b)a(?:b)将不起作用--第一个匹配也将消耗位置3的b,这是第二个匹配需要的边界。(注意:这里实际上不需要非采集群组)

另一个相当突出的例子是密码验证-检查密码是否包含大写、小写字母、数字,无论是什么-你可以使用一堆替换来匹配这些-但lookahead更容易:

代码语言:javascript
运行
AI代码解释
复制
(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!?.])

vs

代码语言:javascript
运行
AI代码解释
复制
(?:.*[a-z].*[A-Z].*[0-9].*[!?.])|(?:.*[A-Z][a-z].*[0-9].*[!?.])|(?:.*[0-9].*[a-z].*[A-Z].*[!?.])|(?:.*[!?.].*[a-z].*[A-Z].*[0-9])|(?:.*[A-Z][a-z].*[!?.].*[0-9])|...
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45944858

复制
相关文章
PHP正则中的捕获组与非捕获组
枕边书
2018/01/04
2.1K0
PHP正则中的捕获组与非捕获组
参考基因组差异导致外显子组变异差异
人类参考基因组的确定和更新得益于人类基因组计划的开展和技术的进步,目前最新版本的GRCh38 (hg38)人类参考基因组是7年前发布的,但是大多科研机构和临床实验室对最新版本的使用还保持谨慎的态度,而GRCh37 (hg19)参考基因组仍被广泛使用。2021年7月1日发表在《美国人类遗传学杂志》(American Journal of Human Genetics)上的一项研究中贝勒医学院(Baylor College of Medicine)人类基因组测序中心(Human Genome Sequencing Center)的研究人员利用大规模全外显子组测序数据确认了两种参考基因组之间的基因变异差异,这项研究可以为那些正在考虑转换使用最新版本的机构提供指导。
用户7625144
2021/10/19
2.3K0
参考基因组差异导致外显子组变异差异
组间差异分析:Anosim
Anosim分析(Analysis of similarities)是一种基于置换检验和秩和检验的非参数检验方法,用来检验组间的差异是否显著大于组内差异,从而判断分组是否有意义。Anosim分析使用距离进行分析,默认为method="bray",可以选择其他距离(和vegdist()函数相同),也可以直接使用距离矩阵进行分析。在R中我们可以使用vegan包中的anosim()函数进行分析,这里我们微生物群落数据为例进行分析:
SYSU星空
2022/05/05
2.3K0
组间差异分析:Anosim
组间差异分析:Adonis
通常我们在做假设检验的时候,是看一个分组变量(也即因子型变量)对某个数值变量的影响,这时候我们针对数据特征可以选择合适的检验方法(详见往期文章R中的假设检验方法),如下所示:
SYSU星空
2022/05/05
6.2K0
组间差异分析:Adonis
组间差异分析:MRPP
MRPP分析即多重响应排列程序(Multiple ResponsePermutation Procedure),使用方法与Anosim类似,用于分析组间微生物群落结构的差异是否显著,通常可以配合PCA、PCoA、NMDS等降维图使用。MRPP的研究原理是通过置换把所有观察对象统一分成各种可能的组合情况,构造统计量δ:
SYSU星空
2022/05/05
2.2K0
组间差异分析:MRPP
组间差异分析:Metastats
在不同区组中寻找差异物种常用的两个工具是Metastats和LEfSe。抛开这两个工具本身,从算法原理上来说,Metastats实际上是非参数多重检验和p值校正的整合,而LEfSe则是Metastats和LDA判别的整合。当然,由于Metastats采用的非参数t检验,只能分析两个分组;而LEfSe则因为使用的Kruskal-Wallis秩和检验可以分析两个以上的分组。当我们明白了他们的原理,实际上可以不用拘泥于两个工具本身,可以自己在R中选择合适的方法来进行分析。
SYSU星空
2022/05/05
1.5K0
组间差异分析:Metastats
xwiki功能-用户和组管理
页面提供了方便的组和用户的管理。它们被显示在一个动态加载的表中,从而使请求相比将被一次性全部装载所有的用户和组要花更少的加载时间。点击表格中用户或者组旁边的小图标来编辑或删除它们。你可以在input框键入用户或者组名称来过滤。
lovelife110
2021/01/14
4290
xwiki功能-用户和组管理
热点综述 | 单细胞转录组和空间转录组差异表达分析工具总结
差异表达(DE)分析是单细胞转录组(scRNA-seq)和空间分辨转录组学(SRT)数据分析的必要步骤。近日《Briefings in Functional Genomics 》发表了一篇综述文章,全面回顾了用于scRNA-seq和SRT研究的DE分析工具最新进展,并强调了进一步发展方向的潜在机会。
尐尐呅
2023/09/06
6390
热点综述 |  单细胞转录组和空间转录组差异表达分析工具总结
本地组和域组
当机器安装完系统后,会自动创建默认的本地组。通过执行命令net localgroup可以查询出本机上的本地组,如图所示:
谢公子
2023/09/01
1.5K0
本地组和域组
基于Salmon的转录组批量定量流程和差异分析
采用for循环进行批量定量 (参考这个为生信学习打造的开源Bash教程真香!!,理解更多):
生信宝典
2022/01/18
1.1K0
转录组测序火山图_转录组差异基因筛选标准
对于初学者来说如果要对gene ID进行转换,可利用Ensembl数据库的BioMart工具。因为相对于R包biomaRt,界面化的操作更加易懂,快捷。BioMart网页工具的原始界面如下所示:
全栈程序员站长
2022/09/27
6300
转录组测序火山图_转录组差异基因筛选标准
Java 正则表达式的捕获组
从正则表达式左侧开始,每出现一个左括号"("记做一个分组,分组编号从 1 开始。0 代表整个表达式。
编程范 源代码公司
2019/11/21
1.2K0
Java 正则表达式的捕获组
代谢组学无非也是差异分析和富集分析
我们以一篇2019年的CELL杂志的文章为例,标题:《Stress-Induced Metabolic Disorder in Peripheral CD4+ T Cells Leads to Anxiety-like Behavior》,链接是:https://pubmed.ncbi.nlm.nih.gov/31675497/
生信技能树
2021/05/27
8.3K0
代谢组学无非也是差异分析和富集分析
转录组差异分析这样做能行吗?
前段时间,我们分享了转录组三种常见差异分析的推文以及单样本1V1进行差异分析的推文。对单个样本进行差异分析时,我们能获得相应的差异基因。在转录组三种常见差异分析的推文中,我们利用取交集的方式看了下三种方法获得共同差异基因的交集情况。曾老师提出了一个有趣的猜想,试想如果我们将3V3的样本拆分成3次1V1进行差异分析,是否会出现什么有趣的现象呢。为了让结果可比,我们就用上次的数据集GSE190114吧。此次,我们除了关注3次1V1差异分析上调与下调差异基因分别共同的交集情况之外,还将关注3种常见分析方法的上调与下调差异基因分别与拆分成3次1V1差异分析的上调与下调差异基因的共同交集情况,「用于探究是否能够拆分成3次1V1后进行差异分析」。话不多说,由于此次所使用的数据与上次一样,对此次的探究描述与数据集介绍感兴趣的小伙伴,请移驾至三种转录组差异分析方法及区别你会了吗?。
生信菜鸟团
2022/10/31
6540
linux用户与组的管理(命令加入、手动加入、加入组、用户之间的切换)
检測username Login: root 到该文件夹下检查 /etc/passwd
全栈程序员站长
2022/07/13
6K0
使用limma进行两组间的差异分析
limma这个R包可以用于分析芯片数据,也可以分析NGS测序的数据,其核心是通过线性模型去估算不同分组中基因表达量的均值和方差,从而进行差异分析。
生信修炼手册
2020/05/08
6.9K0
比较微生物组中的差异分析方法
在微生物组研究中我们常常需要根据某些感兴趣的表型来找到与其相关的特征(比如菌群、OTU、基因家族等等)。但微生物组学的数据结构导致了这必然是一项相当艰巨的任务,因为他们:
生信菜鸟团
2021/12/13
7K0
比较微生物组中的差异分析方法
浅谈单细胞转录组测序中的捕获效率提升
高通量单细胞测序的本质是细胞与barcode的独立配对,但往往很难达到在满足通量要求下的完美效率。促使笔者写这篇文章的原因,是最近发表在Nature method上的一篇文章Ultra-high-throughput single-cell RNA sequencing and perturbation screening with combinatorial fluidic indexing,这篇文章介绍的是对10X单细胞转录组测序捕获效率的一些优化。10X自2016年以来,已有5个年头,虽然单细胞相关的公司正在不断涌现,但依旧无法撼动其地位。而10X的单细胞原理,是基于油包水的磁珠细胞配对的模式,很容易想象,如果未经优化的简单的进行两个流路的交叉融合,很容易出现多个磁珠多个细胞的排列组合方式,这在后续的单细胞分析中是灾难的。所以,往往最简单的优化就是对溶液进行大量的稀释。
生信技能树jimmy
2021/08/20
2.3K0
sudo、su、su – 之间的区别以及wheel组
文章转自:https://www.howtoforge.com/tutorial/sudo-vs-su/,非常好的一篇文章,我就不总结了,最后只补充一下轮子组wheel。
好派笔记
2021/09/14
3.1K0
点击加载更多

相似问题

.NET捕获、组、匹配之间的差异

20

捕获组与非捕获组

24

非捕获组内的捕获组

10

非捕获组内的捕获组

11

非捕获组中的Regex捕获组

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文