首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在我的正则表达式中找不到错误

在我的正则表达式中找不到错误
EN

Stack Overflow用户
提问于 2013-12-20 02:00:14
回答 1查看 71关注 0票数 0

我正在尝试构建一个regex,它能够从字符串中提取所有类似Stackoverflow的标记。我的正则表达式出了点问题,我找不到它是什么:

代码语言:javascript
复制
s = 'call,me r c++ c# 132(list) 2345sdf;sdf_sfg? "adf-sdf aso.net?'
re.findall(r"[^,\s;\"\(\)]*[a-zA-Z0-9_\+\-\.#]*[a-zA-Z0-9_\+\-#]", s.lower())

我得到了

代码语言:javascript
复制
['call',
 'r',
 'c++',
 'c#',
 '132',
 'list',
 '2345sdf',
 'sdf_sfg',
 'adf-sdf',
 'aso.net']

所以当你看到逗号消失后的"me“。我也愿意改进我的正则表达式。

编辑:我想匹配的模式是有效的SO标记,即a-za-z0-9_+-#集合中的所有字符。我的表达式的其余部分是将句子末尾的点排除在外,以及消除逗号的变通方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-20 02:07:02

代码语言:javascript
复制
>>> s = 'call,me r c++ c# 132(list) 2345sdf;sdf_sfg? "adf-sdf aso.net? foo. bar.'
>>> re.findall(r'\b\w[\w#+.-]*(?<!\.)', s)
['call', 'me', 'r', 'c++', 'c#', '132', 'list', '2345sdf', 'sdf_sfg', 'adf-sdf', 'aso.net', 'foo', 'bar']

我需要标签开始后,一个字边界与一个字字符。在此之后,我还捕获了许多单词字符或我明确列出的字符(#+.-)。因此,如果要支持另一个字符,只需将其添加到字符类中即可。

末端的负后视防止标记以点结尾。

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

https://stackoverflow.com/questions/20695097

复制
相关文章

相似问题

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