gpt4 book ai didi

javascript - 如何使用全词正则表达式搜索梵文文本?

转载 作者:搜寻专家 更新时间:2023-11-01 04:17:06 25 4
gpt4 key购买 nike

我的带有梵文单词的 HTML 代码

<html>
<head>
<title>TODO</title>
<meta charset="UTF-8">
</head>
<body>
मंत्री मुख्यमंत्री
</body>
<script src="jquery-1.11.0.min.js"></script>
<script src="xregexp_20.js"></script>
<script src="addons/unicode/unicode-base.js"></script>
<script src="addons/unicode/unicode-scripts.js"></script>
<script src="my.js"></script>
</html>

我的javascript代码

var html = document.getElementsByTagName("html")[0];
var fullpage_content = html.innerHTML;

var regex = RegExp("मंत्री", "g");
var count = fullpage_content.match(regex);
console.log("count in page : " + count+ ", " + count.length);

//use of word boundry ,not supported by devanagari characters
regex = RegExp("\\bमंत्री\\b", "g");
count = fullpage_content.match(regex);
console.log("count in page : " + count);

regex = XRegExp("मंत्री");
var match = XRegExp.matchChain(fullpage_content, [regex]);
console.log("count in page : " + match + ", " + match.length);

//xregex do not support word boundry \\b
regex = XRegExp("\\bमंत्री\\b");
match = XRegExp.matchChain(fullpage_content, [regex]);
console.log("count in page : " + match + ", " + match.length);

js 的输出(在 Chrome 上)

count in page : मंत्री,मंत्री, 2

count in page : null

count in page : मंत्री,मंत्री, 2

count in page : , 0

全词搜索应该给出一个答案,但 regexp 和 XRegExp 都让我失望。我需要一些帮助。

最佳答案

使用此正则表达式,我可以在 मंत्री 上进行匹配,但排除 मुख्यमंत्री:

var regex = XRegExp("(?:^|\\P{L})मंत्री(?=\\P{L}|$)");

如果满足以下条件,它会匹配 मंत्री

  1. 位于字符串的开头或前面有一个 Unicode 认为是非字母的字符,并且

  2. 位于字符串末尾或后跟一个 Unicode 视为非字母的字符。

请注意,这与 \b 的做法略有不同,因为 \b 不匹配数字。例如,/\bmantri\b/ 不会匹配 mantri123 因为 123 被认为是单词的一部分,因此不标记单词边界。如果你想要模拟 \b 的东西,那么这样做就可以了:

var regex = XRegExp("(?:^|[^\\p{L}\\p{N}])मंत्री(?=[^\\p{L}\\p{N}]|$)");

与第一个正则表达式的不同之处在于,这个 मंत्री 不能在数字之前或之后。

我在正则表达式的末尾使用了否定先行,因此您的单词后面的字符被排除在结果之外。没有等效的负面回顾,所以如果 मंत्री 之前有一个字符,它出现在结果中。您必须根据您的特定应用决定要使用此 Angular 色做什么。

关于javascript - 如何使用全词正则表达式搜索梵文文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23236767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com