如何通过字符和字数检测字符串中是否包含印地语 (devnagri)

2024-04-04

下面是一个示例字符串 -

$string = "abcde वायरस abcde"

我需要检查该字符串是否包含任何印地语(梵文)内容,如果包含,则检查字符和单词的数量。我猜带有 unicode 字符类的正则表达式可以工作http://www.regular-expressions.info/unicode.html http://www.regular-expressions.info/unicode.html。但我无法找出正确的正则表达式语句。


要查明字符串是否包含印地语(梵文)字符,您需要拥有所有印地语字符的完整列表。根据这个网站 http://jrgraphix.net/r/Unicode/0900-097F,印地语字符是之间的十六进制字符0x0900 and 0x097F(十进制 2304 到 2431)。

如果这些字符中有任何字符在该集中,则正则表达式模式需要匹配。因此,您可以使用模式(实际上是一组字符)来匹配字符串,如下所示:

[\u0900\u0901\u0902 ... \u097D\u097E\u097F]

由于手动写下此字符列表相当麻烦,因此您可以通过迭代 2304 到 2431 的十进制字符或十六进制字符来生成此字符串。

要计算至少包含一个印地语字符的所有单词,您可以使用以下模式。它包含空格 (\s) 围绕单词或开头 (^) 或结尾 ($)在世界各地,以及一个全局标志,以匹配每个出现的情况(/g):

/(?:^|\s)[\u0900\u0901\u0902 ... \u097D\u097E\u097F]+?(?:\s|$)/g

这是 JavaScript 中的实时实现:

var numberOfHindiCharacters = 128;
var unicodeShift = 0x0900;
var hindiAlphabet = [];
for(var i = 0; i < numberOfHindiCharacters; i++) {
  hindiAlphabet.push("\\u0" + (unicodeShift + i).toString(16));
}

var regex = new RegExp("(?:^|\\s)["+hindiAlphabet.join("")+"]+?(?:\\s|$)", "g");
var string1 = "abcde वायरस abcde";
var string2 = "abcde abcde";

[ string1.match(regex), string2.match(regex) ].forEach(function(match) {
  if(match) {
    console.log("String contains " + match.length + " words with Hindi characters only.");
  } else {
    console.log("String does NOT contain any words with Hindi characters only.");
  }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过字符和字数检测字符串中是否包含印地语 (devnagri) 的相关文章

随机推荐

  • Silverlight 4 和浏览器外

    有谁知道是否可以对 app current mainwindow width 进行动画处理 以便在以编程方式调整 oob 应用程序窗口大小时获得一个带有缓动的漂亮动画 谢谢 最简单的方法是向页面添加滑块控件 滑块可以折叠 仅用于具有简单的动
  • VBA 自函数返回#VALUE!单元格出错,而在函数窗口中正确返回实际值

    我在下面写的函数是采用一个范围 我对其进行了一些条件格式设置 用于字体颜色 以及另一个用于比较颜色的单元格范围 功能是统计大范围内有多少个单元格与一个单元格范围具有相同的字体颜色 Function CountColor rng As Ran
  • 在logstash中使用docker GELF驱动程序env/labels

    Docker GELF 日志驱动程序允许env and labels日志选项 gelf 日志记录驱动程序支持 lab els 和 env 选项 它添加了额外的密钥extra字段 以下划线 为前缀 ref https docs docker
  • 分配给 Rails ActiveRecord 中的布尔字段时,值如何转换?

    我的问题的简短版本 在 Rails ActiveRecord 中 如果我有一个布尔字段并且我给它分配类似 abc or 2 然后它立即转换为false 价值1被投射到true and nil仍然是nil 为什么会这样呢 在哪里可以找到解释此
  • PHPUnit:存根多个接口

    我正在掌握 PHPUnit 到目前为止发现它非常容易使用 但我遇到了一个给我带来困难的测试用例 我正在针对一组预期对象实现的接口 一些是 PHP 的 一些是自制的 编写代码 并且 SUT 需要一个输入对象来实现多个接口 例如 class M
  • 计算两个模型的梯度

    假设我们正在构建一个基本的 CNN 来识别猫和狗的图片 二元分类器 此类 CNN 的示例如下 model Sequential Conv2D 32 3 3 input shape Activation relu MaxPooling2D p
  • 在JetPack Compose中手动重构所有AndroidView

    在我的项目中 我使用 JetPack Compose 和 AndroidView 来使用 XML 视图 Composable fun MyComposable message String AndroidView factory conte
  • MSBuild /m:4 失败,因为它构建了同一个项目两次

    我的团队有一个大型解决方案 约 500 个 csproj 我们使用 VS2012 并使用 TFS Build 进行构建 TFS Build 使用 MSBuild 4 目前我们串行构建 但我们希望并行构建 使用msbuild maxcpuco
  • Maven 不会使用公钥来部署

    我正在使用 SSH 将我的 Java 工件部署到服务器 我设置了密钥 以便可以交互式 SSH 到服务器而无需密码 但是当我尝试运行 mvn deploy or mvn release perform 命令 它挂起 我认为是密码提示 My m
  • iOS RestKit 无法将本地实体保存到数据库

    我正在使用 RestKit 0 20 解析 JSON 数据并保存到数据库 这里有一个映射实体 SchoolClass 它由 RestKit 处理并保存得很好 我有另一个名为 MyClass 的实体 它存储我选择的类 这仅在设备上是本地的 这
  • 用CSS隐藏占位符

    我正在使用响应式主题 我在这里面临输入表单问题 在桌面视图中 输入不会有占位符 但有标签 但是 当涉及到移动视图时 我将隐藏此输入标签并使用占位符更改此标签
  • 如何使用 C# 唯一标识 USB 密钥?

    我希望能够检测到 USB 密钥何时插入 此外 如果我能够区分 USB 密钥 A 和 USB 密钥 B 那么我的状态就更好了 最后 如果我可以使用某种硬件序列号 MAC 地址或其他任何方式唯一地识别密钥 那么我就处于最佳状态 基本上 我正在考
  • iOS QuickType 栏:添加自定义建议

    我想根据我的应用程序的用户添加自定义建议 例如 假设它是游戏 然后根据他与之交互的用户 理想情况下 这些建议应在输入字段仍为空时显示 知道该怎么做吗 None
  • 无法加载文件或程序集或其依赖项之一。该系统找不到指定的文件

    我有这样的代码 public static Type ToType XmlSerializableType xmlSerializableType string func XmlSerialzationType ToType Type ty
  • 缩小以适应 Flexbox 或 Flex-basis 中的内容:内容解决方法?

    我有一个网络应用程序 我使用 Flexbox 进行布局 我试图既填充屏幕 它是一个应用程序 而不是文档 又尽可能不指定任何固定的宽度或高度 因为内容可能是各种各样的东西 完全流畅的布局 梦想 因此 我需要流体高度 全宽页眉和页脚 然后中间的
  • Golang将interface{}转换为struct

    我想改进下面代码中的 getCustomerFromDTO 方法 我需要从 interface 创建一个结构 目前我需要将该接口编组到 byte 然后将数组解组到我的结构 必须有更好的方法 我的用例是通过rabbitmq 发送结构 并使用这
  • 奇怪的 var_dump 行为

    我有以下代码行 var dump array 在一个文件中 它输出如下 array size 0 empty 在第二个文件中 它输出 string pre class xdebug var dump b array b i size 0 i
  • 使用 OpenCSV 从 csv 读取流数据

    我有加速度计和陀螺仪传感器流数据 保存在下载文件夹中 我想实时读取所有数据或逐行读取数据流 但我无法超出第一行 try CSVReader reader newCSVReader newFileReader path getAbsolute
  • 保护 Django 站点中的静态媒体访问

    我正在建立一个注册用户可以上传文件的网站 然后通过 Apache 提供这些文件 只有登录的用户才应该能够访问这些文件 我读过了这一页 http docs djangoproject com en dev howto apache auth
  • 如何通过字符和字数检测字符串中是否包含印地语 (devnagri)

    下面是一个示例字符串 string abcde abcde 我需要检查该字符串是否包含任何印地语 梵文 内容 如果包含 则检查字符和单词的数量 我猜带有 unicode 字符类的正则表达式可以工作http www regular expre