匹配RTL+LTR字符串的正则表达式

问题描述 投票:0回答:1

我收到了一份文件,其中包含一些用希伯来语编写的信息。我需要编写正则表达式以使用 JavaScript(特别是 Node.js)从文档中提取结构化数据。例如,如果文档是英文的并且包含字符串

出生日期:2001年4月10日

然后我会编写一个正则表达式,例如

/Date of birth: (\d{2}\/\d{2}\/\d{4})/
从文档中提取出生日期。

但是,由于希伯来语是从右到左,但数字是从左到右,所以一切都会混淆。

按照上面的示例,当文档包含字符串时

发布日期: 10/04/2001

数字是LTR,标签是RTL。我如何将其与正则表达式匹配?当我在粘贴希伯来语字符串后尝试将

\d{2}
等代码添加到正则表达式时,情况会变得更糟。代码通常会以倒写、混合、发送到字符串开头等方式结束。

这是如何做到的?我对 RTL 语言的经验为零。

javascript regex right-to-left hebrew
1个回答
0
投票

不是答案,但这可能有帮助

这个答案很有帮助https://stackoverflow.com/a/25067431/7909604因为它提供了这个

[\u0590-\u05fe]

当我将您的示例复制到 VS 代码中时,我可以简单地执行以下操作:

[\u0590-\u05fe\s]*:\s*\d{2}\/\d{2}/\d{4}
,然后我完整捕获
תאריך לידה: 10/04/2001

https://www.regextester.com/ 我无法匹配您的文字。我怀疑希伯来语和冒号之间有一个隐藏字符,VS Code 以特殊方式处理该字符(因为当我粘贴它时,文本切换为 LTR)。

我认为要解决这个问题,您需要将文本编辑器如何显示文本和如何存储文本的问题分开事实上

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.