首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式将子模式'hello1,2,3‘替换为'hello’,而不影响其他编号模式

正则表达式将子模式'hello1,2,3‘替换为'hello’,而不影响其他编号模式
EN

Stack Overflow用户
提问于 2017-06-22 19:47:47
回答 1查看 185关注 0票数 0

抱歉,我对正则表达式缺乏经验

我想去掉字符串中的所有子模式,这些子模式的特点是在单词('hello1')后面有一个数字,或者在单词('hello1,2,3')后面有一系列数字,并将这个模式替换为原来的单词(hello)。

以下是我的文本:

X=‘与1,6-己二醇相互作用,对应于FRAP观察到的固定组分,与此相一致的是,HP 1a的不动组分是通过相separation23产生的。与domain24,25,26的domain24 (1.17 ± 0.25)相比较,在核仁边界处,GFP-纤维蛋白多糖的N&B分析显示出持续高方差区域(2.38 ± 0.46 -mers),而在核仁边界内(1.28 ± 0.36)或外部(1.17 ± 0.25)。

代码语言:javascript
复制
x =re.sub(r'([^ 0-9])(\d+(?:, \d+)*)', r'\1', x)

上面,我使用一个正则表达式来消除模式,数字会立即继续使用一个单词,但是它也会产生意想不到的效果:

-hexanediol与观察到的固定组分相对应。与此相一致的是,HP 1a的不动分数.自己通过相分离而产生。N&B分析GFP\xe2_2\x80\x93fiillarin强调区域持续高方差(.\xe2\x80\x89\xc2\xb1\xe2\x80\x89 )。( -mers)在核仁边界,与内部(.\xe2\x80\x89\xc2\xb1\xe2\x80\x89.)或外部(.\xe2\x80\x89\xc2\xb1\xe2\x80\x89.)域。同样,GFP\xe2\x80\x93HP 1a显示出更大的方差。

预期产出如下:

X=‘与1,6-己二醇相互作用,对应于FRAP观察到的固定组分,与此相一致的是,HP 1a的固定组分是通过相分离产生的,GFP-纤维蛋白原在核仁边界的N&B分析强调了核仁边界上的高方差区域(2.38 ± 0.46 ),而在核仁边界内(1.28 ± 0.36)或区带外(1.17 ± 0.25),GFP-HP 1a的变异增加。

“1,6-己二醇”、“1.28 ± 0.36”和“HP 1a”等模式不移除数字。

更新:

该表达式似乎无法完全消除包含连字符的模式(例如,word11 11-12)。

代码语言:javascript
复制
x='than allelic variant and define eQTLs9–11'

x = re.sub(r"(?<=\w)\d+(?:, \d+)*", "", x)

结果:

而不是等位基因变异体并定义eQTLs 1。

预期产出:

而不是等位基因变异体和定义eQTL

有人能帮我做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-22 20:06:03

代码语言:javascript
复制
x = re.sub(r"(?<=\w)\d+(?:, \d+)*", "", x)

解释

(?<=...)是一个积极的背景。它基本上是说,“确保这是在这里,但实际上没有匹配”。如果需要,还可以将其替换为普通组,并在替换中使用\1

\w与"word“字符匹配。这通常等同于[a-zA-Z_]

\d+匹配一个数字。

(?:, \d+)*匹配一个逗号,一个空格,后面跟着一个数字,0次或更多次。

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

https://stackoverflow.com/questions/44708153

复制
相关文章

相似问题

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