为什么 Perl v5.22 没有找到所有句子边界?

2023-12-22

这是在 Perl 5.22.1 中修复的。我写在Perl v5.22 添加了奇特的 Unicode 字边界 http://www.effectiveperlprogramming.com/2016/06/perl-v5-22-adds-fancy-unicode-word-boundaries/.


Perl v5.22 添加了 Unicode 断言TR #29 http://unicode.org/reports/tr29/#SB3。我一直在玩句子边界断言,但它似乎只能找到文本的开头和结尾:

use v5.22;

$_ = "See Spot. (Spot is a dog.) See Spot run. Run Spot, run!\x{2029}New paragraph.";

while( m/\b{sb}/g ) {
    say "Sentence boundary at ", pos;
    }

输出在文本的开头和结尾处标注句子边界,但不在句号、句子终止符或括号之后标注:

Sentence boundary at 0
Sentence boundary at 70

The Unicode 中断测试器 http://unicode.org/cldr/utility/breaks.jsp主要显示它们是我期望它们基于TR #29 http://unicode.org/reports/tr29/#SB3.

我在 perl 源代码中找不到此功能的任何重要测试。我正在消化技术报告以创建适当的测试用例,但到目前为止,这看起来像是另一个未经测试和损坏的功能。


Calle Dybedahl 的评论是正确的(当他们将其变成答案时,我会接受)。这是 v5.22.0 中的一个损坏的功能,据我所知,未经测试。昨晚我在编译最新的 perls 时遇到了问题,并以这个问题结束了这一天。

perl5.22.1珀尔德尔塔没有提及特定的更改(并且“提及”可能过于强烈,因为它只是暗示可能存在错误的事情而没有枚举它们)。它提到与 5.20.0 不兼容的更改(剪切和粘贴错误?),一个“单一”异常,然后是多个问题。提到“理智”让我认为所有的变化都与下一小节中的恐慌问题有关。仅在 rt.perl.org 的一个参考文献中提到“几个错误”让我认为这些错误与恐慌问题有关。

=head1 不兼容的更改

除了以下内容之外,没有任何故意与 5.20.0 不兼容的更改 以下是一个例外,我们认为这是一个明智的改变 为了让新的 C 和(特别是) C 功能保持正常 在人们因为 Perl 5.22.0 中的错误而认为它们毫无价值之前 实施并在将来避免它们。 如果存在任何其他错误,则它们是错误,我们要求您提交报告。 参见下面的L。

=head2 边界检查结构

多个错误,包括分段错误,已通过边界修复 检查结构(在 Perl 5.22 中引入) C, C, C, C、C 和 C。所有 C 现在都匹配空 细绳; C 都没有这样做。 Lhttps://rt.perl.org/Ticket/Display.html?id=126319>

此外,Perl 反斜杠记录了新边界,但没有提到它们在 v5.22.0 中不起作用。

由于不协调,我忽略了可能的修复珀尔德尔塔根据我之前的经验,新功能在 Perl 源代码中没有得到充分(甚至根本没有)测试。我过早地切断了调查线索,这样我就可以节省几个小时。没有让代码在最新的二进制文件上运行当然是我的错,但我已经开始执着于我做错了什么并且我的代码是问题所在的想法。尽管我过去有很多相反的经历,但我并没有想到(除了 UCD 的更新)perl错了。

现在我在另一台机器上并且有一个工作的 perl-5.22.1,我看到我的程序在单点版本中按预期工作。这珀尔德尔塔这里本来可以更好。

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

为什么 Perl v5.22 没有找到所有句子边界? 的相关文章

  • 在 perl 中 \*STDIN 与 STDIN 相同吗?

    我是作者Python化者 https github com snoopyjc pythonizer我正在尝试将 CGI pm 的代码从标准 perl 库翻译为 Python 我在中遇到了这段代码从客户端读取 https metacpan o
  • 在字符串中每个字母后面添加数字

    我有几个具有固定格式的字符串 格式为一个字母后跟一个数字 例如 A3B1C7D1 但是 如果字母后面的数字为 1 则字符串将写为 A3BC7D 我想做的是插入数字 1 然后将字符串转换为A3BC7D to A3B1C7D1 我的示例数据是
  • 如何检测FTP文件传输完成?

    我正在编写一个脚本 用于轮询 FTP 站点上的文件并在可用时将它们下载到本地 文件由各个来源方随机存放到 FTP 站点 我需要一种方法能够在下载之前检测 FTP 站点上的文件是否已被源方完全传输 关于如何解决这个问题有什么想法吗 如果您可以
  • 用 unicode 字符删除纯文本?

    是否可以删除代码注释中不需要的修改过的单词 由于开发人员仍然在黑暗时代更简单的纯文本时代进行编码 其中文本无法使用隐藏标识符进行格式化 因此实现这一目标的唯一方法是使用 Unicode 字符 由于某些unicode字符可以扩展 y o n
  • 如果使用 javascript 在 ASP.NET 中页面验证失败,如何禁用提交按钮

    如果页面上的验证失败 我需要使用 JavaScript 禁用表单上的保存按钮 如果没有 则必须使用以下代码启用它 Code
  • 如何防止用户生成的 Sql 查询上的 Sql 注入

    我有一个项目 私有的 ASP net 网站 受 https 密码保护 其中要求之一是用户能够输入直接查询数据库的 Sql 查询 我需要能够允许这些查询 同时防止它们对数据库本身造成损坏 以及访问或更新它们不应该访问 更新的数据 我制定了以下
  • Logstash if 语句与正则表达式示例

    谁能告诉我什么是if带有正则表达式的语句看起来像在logstash中 我的尝试 if fieldname 0 9 if fieldname 0 9 两者都不起作用 我打算做的是检查 fieldname 是否包含整数 将其他答案合并成一个有凝
  • 替换 Greasemonkey 中的部分 URL

    我正在尝试使用 Greasemonkey 脚本替换 url 的一部分 但很难实现我想要做的事情 原始网址如下 http x1 example to images thumb 50 157 1571552600 jpg http x2 exa
  • 正则表达式挑选括号之间的一些文本[重复]

    这个问题在这里已经有答案了 可能的重复 提取 R 中所有括号内的信息 正则表达式 https stackoverflow com questions 8613237 extract info inside all parenthesis i
  • Python替换多个字符串同时支持反向引用

    有一些好方法 https stackoverflow com questions 6116978 python replace multiple strings处理 python 中的同时多字符串替换 但是 我在创建一个高效的函数来实现这一
  • 如何阻止“gem”实用程序访问我的主目录?

    当我跑步时 gem install
  • 替换第二个和第三个下划线之间的任何内容

    我有一个 PowerShell 脚本行 它用 替换 删除 第二个和第三个下划线之间的字符 get childitem pdf rename item newname name replace p L p L 例子 12345 00001 L
  • 法语和西班牙语的特殊字符可以保存在 varchar 中吗?

    法语和西班牙语中有普通英语中不使用的特殊字符 重音元音等 varchar 是否支持这些字符 或者我需要一个 nvarchar 吗 注 我愿意NOT希望讨论我是否应该使用 nvarchar 还是 varchar 您在谈论什么 SQL 实现 我
  • 打印 Perl 数组的简单方法? (有一点格式化)

    有没有一个easy如何打印每个元素之间用逗号分隔的 Perl 数组 编写一个 for 循环来做到这一点非常简单 但不太优雅 如果这是有道理的 只需使用join http perldoc perl org functions join htm
  • 如何为所有语言创建字母数字正则表达式?

    我今天遇到了这个问题 此正则表达式仅匹配英语 a zA Z0 9 如果我需要支持这个世界上的任何语言 我应该编写什么正则表达式 如果您使用字符类简写和 Unicode 识别正则表达式引擎 您就可以做到这一点 这 wclass 匹配 单词字符
  • 正则表达式中的零宽度元素是什么?

    最近 我在正则表达式中看到 零宽度元素 这些是什么 能不能把它们当作幽灵数据 这样对于替换 就不会被替换 对于 匹配 他们不会进入matches 1 matches 2 etc 是否有针对其各种用途的良好教程 他们已经在这里呆了很长时间了吗
  • 正则表达式中连字符的这种用法有效吗?

    NB I only想知道它是否是正则表达式定义中未转义连字符的有效应用 它是not关于匹配电子邮件 连字符或反斜杠的含义 量词或其他任何内容的问题 另外 请注意 链接的答案并没有真正讨论转义 未转义连字符之间的有效性问题 通常我会像这样声明
  • Perl:管理 Windows 上的路径编码

    我正在努力处理包含非英文字符的路径 Activestate Perl Windows XP 如何打开 写入 复制等位于包含希腊语 俄语 法语重音字符的路径中的文件 假设我要将 text txt 文件复制到的目录是 C Documents a
  • 为什么我无法在 Mac OS X Terminal.app 上的 Python 解释器中显示 unicode 字符?

    如果我尝试粘贴 unicode 字符 例如中间的点 在我的 python 解释器中它什么也不做 我在 Mac OS X 上使用 Terminal app 当我只是在 bash 中时 我没有遇到任何问题 但在解释器中 python Pytho
  • 如何使用 Regex.Replace 从字符串中删除数字?

    我需要使用Regex Replace从字符串中删除所有数字和符号 输入示例 123 abcd33输出示例 abcd 请尝试以下操作 var output Regex Replace input d string Empty The d标识符

随机推荐

  • 如何在代码中处理游标上的 IllegalStateException?

    当我调试我的应用程序时突然弹出此错误 我该如何处理这种错误 我不知道是在哪里以及如何引起的 Daemon System Thread lt 5 gt HeapWorker Suspended exception IllegalStateEx
  • Pytorch 中缺乏 L1 正则化的稀疏解决方案

    我正在尝试在简单神经网络的第一层 1 个隐藏层 上实现 L1 正则化 我查看了 StackOverflow 上的其他一些帖子 这些帖子使用 Pytorch 应用 l1 正则化来弄清楚应该如何完成 参考文献 在 PyTorch 中添加 L1
  • 使用 RSpec 进行改进的测试类

    假设我已经精炼了 module RefinedString refine String do def remove latin letters code code code code end end end 我在课堂演讲中使用它 class
  • 将所有“工作表对象”转换为 powerpoint 中的图像

    真的不知道把它放在哪个堆栈站点上 请随意将其移至正确的位置 我的问题与编程并不真正相关 但我有大量的幻灯片中嵌入了这些 工作表对象 的要点 有些似乎是来自 Excel 的图表以及来自 Visio 的其他图表类型项目 我需要将所有这些 工作表
  • Kivy 规则继承与 add_widget()

    跟进问题 Kivy 外部规则固有 https stackoverflow com questions 31618565 kivy outside rule inherence main py from kivy app import App
  • 为什么 Azure 不在我的两个实例之一上调度 HTTP 请求?

    我有一个带有两个实例的 Azure Web 角色 两个实例都 准备就绪 运行正常 在我的桌面上 同一程序的四个实例同时运行 并通过 HTTP 请求访问 Web 角色 URL 但根据日志 所有请求仅分派到实例 0 我需要将请求分派到两个实例以
  • C# 通用列表联合问题

    我正在尝试使用 Union 合并两个列表 以便消除重复项 以下是示例代码 public class SomeDetail public string SomeValue1 get set public string SomeValue2 g
  • ipython 笔记本中的居中对齐输出

    我想将我的输出 包括文本和绘图 居中对齐ipython notebook 有没有一种方法可以在同一个笔记本中添加样式 代码或屏幕截图示例会有很大帮助 尝试在代码单元中运行此命令以覆盖输出单元的默认 CSS from IPython disp
  • SharePoint 2010:RemoveFieldRef 和 Inherits="TRUE"

    我创建了一个继承自 OOTB SharePoint 的自定义内容类型Picture内容类型 我所做的唯一自定义是添加一个简单的 URL 字段 并删除基本类型上的两个字段 见下文
  • 如何根据编译器类型在 C 编译器的 SConstruct 中设置选项?

    我需要为 C 编译器设置附加选项 例如添加标志以打开所有警告 具体取决于编译器的类型 例如 对于 MSVC 我应该使用 env Append CPPFLAGS Wall 但对于 mingw gcc 我需要使用 env Append CCFL
  • Symfony2 异常响应。将 404 状态代码替换为 200

    我在 symfony2 中有一个 404 处理程序 它是一个 EventListener 对于某些 404 我会进行重定向 效果很好 对于浏览器来说 不会抛出 404 错误 new RedirectResponse newURL 该行基本上
  • 向下滚动到部分时突出显示菜单项

    我知道这个问题在这个论坛上已经被问了一百万次 但没有一篇文章帮助我找到解决方案 我编写了一小段 jquery 代码 当您向下滚动到与哈希链接中 具有相同 id 的部分时 它会突出显示哈希链接 window scroll function v
  • 通过重复数字打印所有排列的算法

    我已经成功设计了打印所有重复数字的排列的算法 但我设计的算法有一个缺陷 仅当字符串的字符唯一时它才有效 有人可以帮我扩展算法 以应对字符串的字符可能不唯一的情况 到目前为止我的代码 include
  • Passport JS successRedirect 在 Node.js 中挂起

    我正在使用护照local signup并可以通过表单创建用户并使页面成功重定向到我指定的页面 我目前的问题是 重定向后页面就会挂起 我看到其他人也有类似的经历 但看看我所拥有的 我无法弄清楚为什么我的例子挂了 我首先对表单进行一些简单的验证
  • AuditException:由于非活动事务而无法创建修订

    我一直在更新应用程序上的框架 现在我正在尝试使用 JPA 配置 hibernate envers 来审核某些域 常规持久性工作正常 但审核失败并出现以下错误 我有这个错误 org springframework orm hibernate4
  • PowerShell:ForEach-Object 与 InputObject 的意义是什么?

    The ForEach 对象的文档 https learn microsoft com en us powershell module microsoft powershell core ForEach Object说 当你使用InputO
  • R,获取城市的经度/纬度数据并将其添加到我的数据框中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想获取数据框中城市的经度 纬度数据 并在我的框架中添加 2 列 我是 R 新手 不知道该怎么做 有人可以帮我解决这个问题吗 我的框架 g
  • NLP 对句子内容进行分类/标记(需要 Ruby 绑定)

    我正在分析几百万封电子邮件 我的目标是能够将其分组 团体可以是例如 交货问题 发货缓慢 发货前处理缓慢 库存信息不正确等 客户服务问题 电子邮件回复速度慢 回复不礼貌等 退货问题 退货请求处理缓慢 客户服务缺乏帮助等 定价投诉 发现隐藏费用
  • Azure 身份验证令牌 - AADSTS500113:没有为应用程序注册回复地址

    我正在尝试使用以下教程通过邮递员获取令牌 https learn microsoft com en us azure healthcare apis access fhir postman tutorial https learn micr
  • 为什么 Perl v5.22 没有找到所有句子边界?

    这是在 Perl 5 22 1 中修复的 我写在Perl v5 22 添加了奇特的 Unicode 字边界 http www effectiveperlprogramming com 2016 06 perl v5 22 adds fanc