栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在python的字符类中编写单词边界而不丢失其含义?我希望在单词边界( b)的定义中添加下划线(_)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在python的字符类中编写单词边界而不丢失其含义?我希望在单词边界( b)的定义中添加下划线(_)

您可以使用环顾四周:

(?:b|(?<=_))word(?=b|_)^^^^^^^^^^^^^     ^^^^^^^

请参阅regex演示,其中

(?:b|(?<=_))
是一个非捕获组,它匹配单词边界或前缀为的位置
_
,并且
(?=b|_)
是一个正向超前匹配字词边界或
_
符号的匹配项。

不幸的是,Python

re
不允许使用,
(?<=b|_)
因为后向模式的宽度应固定(否则,您将得到
look-behind requiresfixed-width pattern
错误)。

一个Python的演示:

import rerx = r"(?:b|(?<=_))word(?=b|_)"s = "some_word_here and a word there"print(re.findall(rx,s))

另一种解决方案是使用自定义单词边界,例如

(?<![^W_])
/
(?![^W_])
(请参阅在线演示):

rx = r"(?<![^W_])word(?![^W_])"

(?<![^W_])
如果没有非单词和
_
char以外的字符,否定的lookbehind匹配失败(因此,它要求字符串的开头或任何单词char不包括搜索词
_

之前 的字符),
(?![^W_])
如果没有其他char
,否定的lookahead将失败而不是非单词和
_
字符(也就是说,要求字符串的末尾或不包括在内的单词字符
_
)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/623479.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号