如何将c++与字边界匹配

2023-12-06

我想将单词“c++”与 Python 3 中的单词边界匹配。但我的猜测是 \b 也会在加号上触发。

为了清楚起见,我已简化为以下测试用例:

\bc\+\+\b

我希望我可以保留单词边界,但以某种方式更改其设置。

原因是我想将正则表达式放在 TfidfVectorizer 中的 token_pattern 中,我无法控制它们如何使用它。

链接到在线正则表达式工具


影响角色类“行为”的方法非常有限 - 它们称为标志:

re.ASCII ... 重新详细

他们f.e.允许r'.'匹配换行符 (re.DOTALL),改变行为^$ (re.MULTILINE)或使您的正则表达式匹配而不区分大小写(re.IGNORECASE).

他们都没有改变\b到没有'+'在里面。如果你想搭配c++对于 wordboundaries 你必须模仿\b-您的行为模式:

\b    Matches the empty string, but only at the beginning or end of a word. 
      A word is defined as a sequence of word characters. Note that formally, 
      \b is defined as the boundary between a \w and a \W character (or vice versa), 
      or between \w and the beginning/end of the string. This means that r'\bfoo\b' 
      matches 'foo', 'foo.', '(foo)', 'bar foo baz' but not 'foobar' or 'foo3'.

Source: https://docs.python.org/3/library/re.html#regular-expression-syntax

最简单的可能是将“c++”与前面的单词边界和后面的空格或非单词字符进行匹配。r'\bc\+\+[\s\W]'但这也匹配'c+++'。如果你想独家匹配'c++'但不是'c+++'你可能想放一个'\s'进入您的模式并使用您允许的其他字符扩展它:

r'\b(c\+\+)[\s.,!?]' 

扩展括号中的字符以容纳 c++ 之后允许的更多内容 - 将它们从分组 (c++) 中排除将需要它们匹配但不将它们包含到组中。

至于正则表达式测试工具,也许改为https://regex101.com/- 它有Python支持,你甚至可以save模式和测试文本并提供链接:

https://regex101.com/r/6XtVTS/1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将c++与字边界匹配 的相关文章

随机推荐

  • 当“Model”实例是在启用急切模式的情况下构造的时,不支持在图形模式下调用“Model.predict”

    所以我只是跟随某人的项目并在收到此错误时到达这里 2020 10 12 15 33 21 128 ERROR in app Exception on predict POST Traceback most recent call last
  • 无法更改网状中的Python路径

    启动 rstudio 会话时运行的第一行是 library reticulate use python usr local lib python3 6 site packages 然而 当我跑步时py config 它显示仍在使用默认的 p
  • 使用 Objective C 将文本字符串插入 NSTextView 中的光标位置或选择的文本

    我如何使用 Objective C 和 cocoa 使用 Xcode 来做到这一点 我试图在单击按钮时在光标处或用户选择处插入一个字符串 NSTextView 有一个方法 insertText 可以执行您想要的操作 myTextView i
  • 使用 PyQt 动态将项目设置为 QML ListModel

    我有一个代表时间表的 QML 它从数据库获取值 所以我需要插入值ListModel来自我的Python代码 QML 看起来像这样 function append newElement scheduleList model append ne
  • 如何在正则表达式中定义空格(在 awk 中)?

    我想打印里面的文字 例如我有以下字符串 gfdg jkfgh jkfd fdgj fd ghjhgj gfggf kfdjfdgfhbg fhfghg jhgj jhfjhg dfgdf fgf fgfdg dfj jfdg jhfgjd
  • 如何使用Kivy制作ToolTip?

    我想看到工具提示Qt当鼠标指针悬停在图标上时操作栏 是的 我可以使用mode spinner 但图标更好 您可以改进和扩展的一个简单示例 from kivy app import App from kivy lang import Buil
  • 将进程 ID 添加到 log4cxx 中的日志文件名中

    在 log4net 中 我可以轻松地将进程 ID 设置为从配置中轻松记录文件名
  • 无循环求和

    I have following double summation 10 i 1 i j 1 i 5 10 j i 我对这个练习很迷茫 我尝试了下面的代码 但尽管给了我一个数字 但它返回了一个错误 很确定它不正确 任何帮助都非常有价值 i
  • 如何获取 Facebook 视频的观看次数

    我首先使用 facebook graph api 获取全局视频视图 然后我想尝试单独的视频视图 但是当我尝试以下语法时 获取 v2 5 object id insights page video views 我得到这个答案 data pag
  • 用于命名空间扩展的图标覆盖处理程序

    我正在开发命名空间扩展 它提供服务器上文件的虚拟视图 在此视图中 我需要使用覆盖图标提供文件的不同状态 正在使用 离线 不同步等 我阅读了实现覆盖处理程序的文章 并认为我将尝试在我们的覆盖处理程序之一中处理此问题 该处理程序实现 IShel
  • 如何使用Cookie检查用户是否已经登录?

    我想知道如何检测用户是否已经登录 使用cookie 我没有使用任何登录控件 我有一个数据库可以检查 ID 和 PWD 另请告诉我是否可以在不使用 cookie 的情况下完成 任何代码或链接都会有帮助 网络配置
  • Android 下拉颜色选择器

    我想创建一个下拉颜色选择器 如下所示 抱歉图像丑陋 我只需要一些颜色 比方说 6 种 所以我不需要完整的颜色选择器 下拉菜单就可以正常工作 我知道我必须扩展 Spinner 的阵列适配器并覆盖获取下拉视图 and getView 我不知道的
  • 如何从一个文件中读取随机行?

    有内置方法可以做到这一点吗 如果不是 我怎样才能在不花费太多开销的情况下做到这一点 不是内置的 而是算法R 3 4 2 Waterman 的 Reservoir Algorithm 来自 Knuth 的 计算机编程的艺术 很好 非常简化的版
  • 如何从父子表中获取结果

    Work on SQL服务器 我的表结构如下 CREATE TABLE dbo AgentInfo AgentID int NOT NULL ParentID int NULL CONSTRAINT PK AgentInfo PRIMARY
  • 运行命令、流式传输 stdout/stderr 并捕获结果

    我正在尝试使用std process Command运行命令并流式传输其 stdout 和 stderr 同时捕获 stdout stderr 的副本 我发现我可以使用spawn 此代码将捕获输出 但不会在发生时将其流式传输到 stdout
  • 如何修复“没有名为‘app_one’的模块”

    我有一个具有以下结构的 Python 包 gt python package package root directory gt app one subpackage directory gt init py gt views py gt
  • Adobe Air:在不同应用程序之间更改焦点时滚动条会抛出错误

    TypeError Error 1009 Cannot access a property or method of a null object reference at spark components Scroller focusInH
  • 如何平滑 CamShift 中的跟踪

    我正在使用 OpenCV 库函数进行手头跟踪项目 通过使用Camshift 我可以跟踪我的手 但它不稳定 即使我使我的手稳定 跟踪也几乎没有移动 所以我无法在正确的位置执行鼠标单击操作 有人请帮我解决这个问题 void TrackingOb
  • 复制时的 PouchDB/CouchDB 序列计数器

    I am live将新创建的 pouchdb 3 3 1 同步到已建立的 iris couchdb 初始复制成功发生 pause事件被触发 If I do info 在本地 我得到的 update seq 为362 如果我做info 在遥控
  • 如何将c++与字边界匹配

    我想将单词 c 与 Python 3 中的单词边界匹配 但我的猜测是 b 也会在加号上触发 为了清楚起见 我已简化为以下测试用例 bc b 我希望我可以保留单词边界 但以某种方式更改其设置 原因是我想将正则表达式放在 TfidfVector