Python中文
首页
教程
问答
标签
搜索
登录
注册
Regex:替换所有数字和“numberlike”字符串,范围内的年份除外
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有下面的绳子:</p> <pre><code>s = '2014 2026 202 20 1000 1949 194 195092 20111a a2011a a2011 keep this text n0t th1s th0ugh 1 0 2015 2025 2026' </code></pre> <p>我想用<code>''</code>替换这个字符串中包含数字的每个部分,<strong>除了1950年到2025年之间的字符串部分。结果字符串如下所示(不要担心多余的空白):</p> ^{pr2}$ <p>因此,实际上,我希望暴力删除远程“数字”的任何东西,除了类似于一年的<strong>独立的</strong>(即,不是另一个字符串的一部分,长度为4,不包括空格)。在</p> <p>我知道我可以用这个删除所有包含数字的东西:</p> <pre><code>re.sub('\w*[0-9]\w*', '', s) </code></pre> <p>但这并不能回报我想要的:</p> <pre><code>' keep this text ' </code></pre> <p>下面是我尝试替换与下面列出的模式不匹配的任何内容:</p> <pre><code>re.sub(r'^([A-Za-z]+|19[5-9]\d|20[0-1]\d|202[0-5])', '*', s) </code></pre> <p>返回:</p> <pre><code>'* 2026 202 20 1000 1949 194 195092 20111a a2011a a2011 keep this text n0t th1s th0ugh 1 0 2015 2025 2026' </code></pre> <p>我一直在<a href="https://stackoverflow.com/questions/4374185/regular-expression-match-to-test-for-a-valid-year">here</a>和{a2},但找不到我要找的东西。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>Regex不擅长处理数字。我会抛弃regex并使用生成器表达式:</p> <pre><code>predicate= lambda w: (w.isdigit() and 1950<=int(w)<=2025) or not any(char.isdigit() for char in w) print(' '.join(w for w in s.split() if predicate(w))) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
尽管Python中的所有内容都是引用,为什么Python导师在没有指针的列表中绘制字符串和整数?
5 回答
尽管python中的表达式为false,但循环仍在运行
2 回答
尽管python代码正确,但从nifi ExecuteScript处理器获取语法错误
5 回答
尽管Python在Neovim中工作得很好,但插件不能识别Neovim中的Python主机
6 回答
尽管python字典包含了大量的条目,但它并没有增长
6 回答
尽管python说模块存在,为什么我会得到这个消息?
6 回答
尽管setuptools和控制盘是最新的,但无法识别singleversionexternallymanaged
8 回答
尽管stdout和stderr重定向,但未捕获错误消息
4 回答
尽管Tensorboard的事件太大,但Tensorboard的步骤太少了
10 回答
尽管tkinter上的变量已更改,但显示未更改
10 回答
尽管try/except使用Python进行单元测试时出现断言错误
4 回答
尽管URL是sam,但仍会抛出“达到最大重定向”
6 回答
尽管url有效,Pandas仍读取url的\u csv错误
8 回答
尽管while中存在时间延迟,但LINUX线程的CPU利用率为100%(1)
2 回答
尽管x0在范围内,Scipy优化仍会引发ValueError
8 回答
尽管xpath正确,但使用selenium单击链接仍不起作用
9 回答
尽管下载了ffmpeg并设置了路径变量python,但没有后端错误
8 回答
尽管下载了i,但找不到型号“fr”
2 回答
尽管下载了plotnine包,但未获取名为“plotnine”的模块时出错
10 回答
尽管为所有行指定了权重,网格(0)仍不起作用
6 回答