Python中文
首页
教程
问答
标签
搜索
登录
注册
仅当特定字符不在pai中时才对该字符进行拆分的正则表达式
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>在<a href="https://stackoverflow.com/questions/1919096/mass-string-replace-in-python">this thread</a>中找到最快的字符串替换算法后,我一直在尝试修改其中一个以满足我的需要,特别是gnibbler的<a href="https://stackoverflow.com/questions/1919096/mass-string-replace-in-python/1919221#1919221">this one</a>。在</p> <p>我将在这里再次解释这个问题,以及我遇到的问题。在</p> <p>假设我有一个像这样的字符串:</p> <pre><code>str = "The &yquick &cbrown &bfox &Yjumps over the &ulazy dog" </code></pre> <p>您会注意到字符串中有很多位置,其中有一个和号,后跟一个字符(例如“&y”和“&c”)。我需要用字典中的适当值替换这些字符,如下所示:</p> ^{pr2}$ <p>使用上一篇文章中提供的gnibblers解决方案,我将此作为当前的解决方案:</p> <pre><code>myparts = tmp.split('&') myparts[1:]=[dict.get(x[0],"&"+x[0])+x[1:] for x in myparts[1:]] result = "".join(myparts) </code></pre> <p>因为在这个作品中没有找到合适的字符替换。唯一的问题是,没有一种简单的方法可以让<strong>实际上在输出中保留一个与号。我能想到的最简单的方法就是把我的字典改成:</p> <pre><code>dict = {"y":"\033[0;30m", "c":"\033[0;31m", "b":"\033[0;32m", "Y":"\033[0;33m", "u":"\033[0;34m", "&":"&"} </code></pre> <p>并更改我的“split”调用,对后面不跟其他和号的和号执行正则表达式拆分。在</p> <pre><code>>>> import re >>> tmp = "&yI &creally &blove A && W &uRootbeer." >>> tmp.split('&') ['', 'yI ', 'creally ', 'blove A ', '', ' W ', 'uRootbeer.'] >>> re.split('MyRegex', tmp) ['', 'yI ', 'creally ', 'blove A ', '&W ', 'uRootbeer.'] </code></pre> <p>基本上,我需要一个正则表达式,它将拆分成对的<strong>第一个和符,以及每个<strong>单个</strong>和号,以允许我通过字典对其进行转义。在</p> <p>如果有人有更好的解决方案,请随时告诉我。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以使用否定lookbehind(假设有问题的regex引擎支持它)来只匹配不跟在另一个和号后面的和号。在</p> <pre><code>/(?<!&)&/ </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
得到媒体:缩略图url从rss源
7 回答
得到对数正态随机数给定log10均值和log10标准差
2 回答
得到工作,波斯特不
4 回答
得到左半积和右半积的绝对差最小的元素
4 回答
得到幻数错误?
4 回答
得到异常错误“线程中的异常-1(最有可能在解释器关闭期间引发)”,它使用Parami
1 回答
得到循环
1 回答
得到德语的语法变化
8 回答
得到我认为是好的结果,但还不够
1 回答
得到截断svd.transform()返回float16而不是float64
8 回答
得到所有不相交的集合的并集
10 回答
得到所有函数求值组合的矩阵
5 回答
得到扭曲延迟取消错误当使用刮痧时
3 回答
得到控制台.log使用Selenium python从Chrome输出一次,然后调用第二次为空
5 回答
得到操作系统环境通过NSSM运行Python
4 回答
得到数学方程中的表达式
4 回答
得到数据库结构属性
3 回答
得到整数的后三位
5 回答
得到整数的第n位精度
10 回答
得到最低落的reddit评论
1 回答