Python 正则表达式 \w 与组合变音符号不匹配?

2023-11-23

我有一个带有组合变音符号的 UTF8 字符串。我想将它与\w正则表达式序列。它匹配带有重音符号的字符,但如果存在带有组合变音符号的拉丁字符则不匹配。

>>> re.match("a\w\w\wz", u"aoooz", re.UNICODE)
<_sre.SRE_Match object at 0xb7788f38>
>>> print u"ao\u00F3oz"
aoóoz
>>> re.match("a\w\w\wz", u"ao\u00F3oz", re.UNICODE)
<_sre.SRE_Match object at 0xb7788f38>
>>> re.match("a\w\w\wz", u"aoo\u0301oz", re.UNICODE)
>>> print u"aoo\u0301oz"
aóooz

(看起来 SO markdown 处理器在上面的组合变音符号时遇到了问题,但最后一行有一个 ́ )

无论如何,有没有可以将变音符号与组合相匹配\w?我不想规范化文本,因为该文本来自文件名,而且我还不想进行整个“文件名 unicode 规范化”。这是Python 2.5。


我刚刚注意到一个新的“regex“ pypi 上的包。(如果我理解正确的话,这是一个新包的测试版本,有一天将取代 stdlibre包裹)。

它似乎(除其他外)关于 unicode 有更多的可能性。例如,它支持\X,用于匹配单个字素(无论是否使用组合)。它还支持 unicode 属性、块和脚本的匹配,因此您可以使用\p{M}指组合标记。这\X前面提到的相当于\P{M}\p{M}*(不是组合标记的字符,后跟零个或多个组合标记)。

请注意,这使得\X或多或少相当于unicode.,不属于\w,所以在你的情况下,\w\p{M}*就是你所需要的。

它(目前)是一个非 stdlib 包,我不知道它准备得如何(并且它不是二进制发行版),但您可能想尝试一下,因为它似乎是您问题的最简单/最“正确”的答案。 (否则,我认为您需要明确使用字符范围,如我对上一个答案的评论中所述)。

也可以看看这一页有关 unicode 正则表达式的信息,可能还包含一些对您有用的信息(并且可以作为 regex 包中实现的某些内容的文档)。

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

Python 正则表达式 \w 与组合变音符号不匹配? 的相关文章

随机推荐

  • 如何让猫开始新的一行

    我有四个文件 one file txt abc def 两个文件 txt ghi jkl 三文件 txt mno pqr 四 WORD txt xyz xyz 我想连接所有以 file txt 结尾的文件 即除 four WORD txt
  • BreezeJS 的 1.4.1isolateES5Props 在 IE 8 中导致堆栈空间错误

    使用 BreezeJS 1 4 1 我们发现添加到 Isolate ES5 Properties 中的一些新代码导致 IE 8 出现以下错误 获取元数据时出错 微风 微风 元数据的元数据导入失败 无法处理返回的元数据 对象不支持属性或方法
  • C#泛型中的继承问题

    我有两个接口 public interface A void aMethod public interface B A void bMethod 后来我基本上使用这样的字典 Dictionary
  • 使用自动生成的 Classendpoint 插入方法插入实体时抛出 NullpointerException

    我对使用自动生成的端点类感到困惑 我想使用生成的端点将新对象插入数据存储区 但是 抛出异常 fooEndpoint insertFoo foo throws null pointer exception 我的实体类与此源中给定的示例类似 h
  • C# 中的 PKCS5Padding

    我需要使用 DESede pkcs5 填充来加密字符串 但是 C 仅提供 PKCS7 填充 那么我怎样才能实现这一目标呢 我对此事没有权威 但快速谷歌发现了这一点 http social msdn microsoft com Forums
  • 初始化和销毁​​Python多处理工作者

    我有一个模型 我从 Python 中调用了很多次 该模型的启动和关闭时间较长 但处理输入数据的时间很短 可以在启动 关闭之间多次完成 多处理 Pool 似乎是完成此任务的好方法 但我无法正确销毁 Model 类 下面给出了程序代码的简化结构
  • 为我的应用程序的文档类型注册图标

    我正在尝试为我的应用程序的文档类型注册一个图标 看完之后声明新的统一类型标识符并看着 Developer Examples Sketch我在我的作品中想出了这样的东西Info plist
  • 为什么要检查这个!= null?

    有时 我喜欢花一些时间查看 NET 代码 只是为了了解幕后是如何实现的 我在查看时偶然发现了这颗宝石String Equals通过反射器的方法 C ReliabilityContract Consistency WillNotCorrupt
  • 如何在 PostgreSQL 中按类别选择具有最大日期组的 id?

    例如 我想按类别选择最大日期组的 id 结果是 7 2 6 id category date 1 a 2013 01 01 2 b 2013 01 03 3 c 2013 01 02 4 a 2013 01 02 5 b 2013 01 0
  • PyGTK:如何使图像自动缩放以适合其父窗口小部件?

    我有一个 PyGTK 应用程序需要加载未知大小的图像 但是我遇到的问题是 如果图像非常大或非常小 窗口布局会变得扭曲并且难以使用 我需要某种方法使图像自动缩放以适合其父窗口小部件 不幸的是 经过一些研究后 似乎没有内置或其他代码可以满足我的
  • 获取当前光标位置

    我想获取窗口当前的鼠标位置 并将其分配给2个变量x and y 相对于窗口的坐标 而不是相对于整个屏幕的坐标 我正在使用 Win32 和 C 还有一个简单的额外问题 您将如何隐藏 取消隐藏光标 您可以通过调用获取光标位置GetCursorP
  • iOS 截取多个屏幕截图

    我有一个NSURL包含一个视频 我想每秒录制该视频的一帧十次 我有可以捕获播放器图像的代码 但我无法将其设置为每秒捕获 10 帧 我正在尝试类似的操作 但它返回视频的相同初始帧 正确的次数 这是我所拥有的 AVAsset asset AVA
  • 在redshift中使用sql函数generate_series()

    我想在redshift中使用生成系列功能 但没有成功 redshift 文档说不支持 下面的代码确实有效 select from generate series 1 10 1 outputs 1 2 3 10 我想对日期做同样的事情 我尝试
  • 如何在Google Map sdk iOS中绘制从一个地方到另一个地方的路径?

    我需要在谷歌地图中找到从一个地方到另一个地方的路径 如何使用 google 地图 sdk iOS 绘制方向图 任何人都可以给出源代码 然后解释如何实现这一目标 Below i attached image also i need to ac
  • scala 中的泛型不变协变逆变

    这可能是一个非常愚蠢的问题 但即使在挠了很长时间之后我也无法理解其中的区别 我正在浏览 scala 泛型页面 https docs scala lang org tour generic classes html 这里据说 注意 泛型类型的
  • 如何使用类型特征进行条件编译?

    我正在尝试编写类似的代码here但使用 C 11 功能 不使用 Boost 工作自这个例子 我试图定义一个response trait 以及基于特征结果的条件编译 我怎样才能做到这一点 include
  • 从 XML 文档中获取指定的 Node 值

    我在浏览 XML 文档 使用 C 并获取所有必要的值时遇到问题 我成功地遍历了 XML 文档中所有指定的 XmlNodeList 成功获取了其中的所有 XmlNode 值 但我必须获取此 XmlNodeList 之外的一些值 例如
  • Webpack 和 angularJs

    我正在尝试使用 angularjs 和 webpack 运行简单的应用程序 这是我的代码 索引 html Full Name firstName lastName app js var app angular module myApp
  • 如何在 OAML 中读取位图?

    我想使用 OCAML 读取位图文件 从文件系统 并将像素 颜色 存储在具有位图维度的数组中 每个像素将占用数组中的一个单元格 我找到了这个功能Graphics dump image 图像 gt 颜色数组 数组但它不从文件中读取 影像影像应该
  • Python 正则表达式 \w 与组合变音符号不匹配?

    我有一个带有组合变音符号的 UTF8 字符串 我想将它与 w正则表达式序列 它匹配带有重音符号的字符 但如果存在带有组合变音符号的拉丁字符则不匹配 gt gt gt re match a w w wz u aoooz re UNICODE