Skip to content

一个高性能 Rust 拼音匹配库,支持 C、AHK2

License

Notifications You must be signed in to change notification settings

Chaoses-Ib/IbPinyinLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1f4140a · Jan 22, 2025

History

46 Commits
Dec 17, 2023
Nov 21, 2023
Apr 20, 2024
Dec 17, 2023
Apr 19, 2024
Dec 17, 2023
Apr 20, 2024
Apr 20, 2024
Mar 28, 2022
Jan 22, 2025
Dec 21, 2023
Dec 2, 2023

Repository files navigation

IbPinyinLib

License

一个高性能 Rust 拼音匹配库。

  • 支持以下拼音编码方案:
    • 简拼(“py”)
    • 全拼(“pinyin”)
    • 带声调全拼(“pin1yin1”)
    • Unicode(“pīnyīn”)
    • 智能 ABC 双拼
    • 拼音加加双拼
    • 微软双拼
    • 华宇双拼(紫光双拼)
    • 小鹤双拼
    • 自然码双拼
  • 支持多音字。
  • 支持混合匹配多种拼音编码方案,默认匹配简拼和全拼。
  • 默认小写字母匹配拼音或字母,大写字母只匹配字母。
  • 支持 Unicode 辅助平面汉字。

支持语言

crates.io Documentation

use ib_pinyin::{matcher::PinyinMatcher, pinyin::PinyinNotation};

let matcher = PinyinMatcher::builder("pysousuoeve")
    .pinyin_notations(PinyinNotation::Ascii | PinyinNotation::AsciiFirstLetter)
    .build();
assert!(matcher.is_match("拼音搜索Everything"));
#include <ib_pinyin/ib_pinyin.h>
#include <ib_pinyin/notation.h>

// UTF-8
bool is_match = ib_pinyin_is_match_u8c(u8"pysousuoeve", u8"拼音搜索Everything", PINYIN_NOTATION_ASCII_FIRST_LETTER | PINYIN_NOTATION_ASCII);

// UTF-16
bool is_match = ib_pinyin_is_match_u16c(u"pysousuoeve", u"拼音搜索Everything", PINYIN_NOTATION_ASCII_FIRST_LETTER | PINYIN_NOTATION_ASCII);

// UTF-32
bool is_match = ib_pinyin_is_match_u32c(U"pysousuoeve", U"拼音搜索Everything", PINYIN_NOTATION_ASCII_FIRST_LETTER | PINYIN_NOTATION_ASCII);

C++

原实现(停止维护)

#Include <IbPinyin>

IsMatch := IbPinyin_Match("pysousuoeve", "拼音搜索Everything")
; 指定拼音编码
IsMatch := IbPinyin_Match("pysousuoeve", "拼音搜索Everything", IbPinyin_AsciiFirstLetter | IbPinyin_Ascii)
; 获取匹配范围
IsMatch := IbPinyin_Match("pysousuoeve", "拼音搜索Everything", IbPinyin_AsciiFirstLetter | IbPinyin_Ascii, &start, &end)

; 中文 API
是否匹配 := 拼音_匹配("pysousuoeve", "拼音搜索Everything")
; 指定拼音编码
是否匹配 := 拼音_匹配("pysousuoeve", "拼音搜索Everything", 拼音_简拼 | 拼音_全拼)
; 获取匹配范围
是否匹配 := 拼音_匹配("pysousuoeve", "拼音搜索Everything", 拼音_简拼 | 拼音_全拼, &开始位置, &结束位置)

下载

其它拼音相关项目

语言 拼音 双拼 词典 匹配 其它
Rust
(C, AHK2)
IbPinyinLib ✔️ Unicode ✔️ ✔️ 性能优先;支持 Unicode 辅助平面汉字
Rust
(Node.js)
rust-pinyin ✔️ Unicode
Rust rust-pinyin 简拼
C# ToolGood.Words.Pinyin ✔️ 单编码?
C# TinyPinyin.Net ✔️
C# Romanization.NET Unicode 支持日文、韩文、俄文、希腊文
Java PinIn ✔️ ✔️ ✔️ 支持注音输入法、模糊音
Java TinyPinyin ✔️ ✔️
Go go-pinyin ✔️ ✔️
Python python-pinyin ✔️ ✔️
TS pinyin-pro ✔️ ✔️
JS pinyin-match ✔️ 单编码 匹配时忽略空白
JS pinyin-engine ✔️ 单编码
JS pinyin ✔️ ✔️
JS pinyinjs ✔️ Unicode
Perl
(Rust, Java, Python, Ruby, JS, PHP)
Text::Unidecode ✔️ 支持文字广泛

数据库:

文件搜索/启动器:

文件管理:

终端:

文本编辑: