gpt4 book ai didi

javascript - 使用正则表达式识别和隔离希伯来语单词

转载 作者:行者123 更新时间:2023-12-03 12:39:21 24 4
gpt4 key购买 nike

我需要解析一个希伯来语句子来识别和隔离其中的每个单词(这样我就可以用“span”标签将它们包裹起来)。
我首先通过从空格字符中识别非空格字符来尝试不使用标点符号,但仍然不起作用:

var regex = /(\s)*(\S)+(\s)*/g;

任何的想法?
谢谢

编辑:我已经有一个用英语完成工作的正则表达式,我把它放在以防它可以帮助理解我想要实现的目标:
var regExp = /\b([^\s']+)\b/g,

edit2:添加代码示例
var regex = /(\s)*(\S)+(\s)*/g;
var sentence = "שלום מה קורה מהיום";
sentence.replace(regex, function(match, p1, p2, p3){console.log('"' + match + '"', '"' + p1 + '"', '"' + p2 + '"', '"' + p3 + '"');});


// result
"שלום " "undefined" "ם" " " VM1494:2
"מה " "undefined" "ה" " " VM1494:2
"קורה " "undefined" "ה" " " VM1494:2
"היום" "undefined" "ם" "undefined" VM1494:2
"undefinedundefinedundefinedundefined"

编辑3:我需要能够在最后用相同的标点符号重新组合句子。

最佳答案

好吧,你可能知道网络中的希伯来语是个婊子。
尝试使用这个正则表达式:

[\s]*(\S)+[\s]*

例子:
var words = sentence.match(/[\s]*(\S)+[\s]*/g);

它确实会留在尾随空格中以清除它们,您可以执行以下操作:
words = words.join().split(" ")

我正在尝试其他一些正则表达式变体来尝试规避 join-split hack,如果我发现任何东西,我会更新。

此外,您可以采用“替换”方式并执行以下操作:
var words = sentence.replace(/[#`~?!#\$%\.;:,]*/g, "").split(" ")

只要确保添加任何可能使用的标点符号。

然后要获得一个新的 HTML 字符串,其中的单词用 span 标签包裹,您可以这样做:

让我们说:
var sentence = "?שלום, מה קורה מהיום"
var words = sentence.replace(/[#`~?!#\$%\.;:,]*/g, "").split(" ")

然后:
var newSentence = encodeURI(sentence)
words.forEach(function(word){
word = encodeURI(word)
newSentence = newSentence.replace(word, "<span>" + word + "</span>")
})
newSentence = decodeURI(newSentence);
newSentence将您的话用 span 标签包裹,同时保留标点符号:

关于javascript - 使用正则表达式识别和隔离希伯来语单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21215580/

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