Jon*_*aid 5 javascript regex hebrew right-to-left
我需要解析一个希伯来语句子来识别和隔离(这样我就可以用“span”标签将它们包裹起来)其中的每个单词。\n我首先尝试通过从空格字符中识别非空格字符来不使用标点符号,但仍然不起作用:
\n\nvar regex = /(\\s)*(\\S)+(\\s)*/g;\nRun Code Online (Sandbox Code Playgroud)\n\n有什么想法吗?\n谢谢
\n\n编辑:我已经有一个用英语完成工作的正则表达式,我把它放在以防万一它可以帮助理解我想要实现的目标:
\n\nvar regExp = /\\b([^\\s\']+)\\b/g,\nRun Code Online (Sandbox Code Playgroud)\n\nedit2:添加代码示例
\n\nvar regex = /(\\s)*(\\S)+(\\s)*/g;\nvar sentence = "\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d \xd7\x9e\xd7\x94 \xd7\xa7\xd7\x95\xd7\xa8\xd7\x94 \xd7\x9e\xd7\x94\xd7\x99\xd7\x95\xd7\x9d";\nsentence.replace(regex, function(match, p1, p2, p3){console.log(\'"\' + match + \'"\', \'"\' + p1 + \'"\', \'"\' + p2 + \'"\', \'"\' + p3 + \'"\');});\n\n\n// result\n"\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d " "undefined" "\xd7\x9d" " " VM1494:2\n"\xd7\x9e\xd7\x94 " "undefined" "\xd7\x94" " " VM1494:2\n"\xd7\xa7\xd7\x95\xd7\xa8\xd7\x94 " "undefined" "\xd7\x94" " " VM1494:2\n"\xd7\x94\xd7\x99\xd7\x95\xd7\x9d" "undefined" "\xd7\x9d" "undefined" VM1494:2\n"undefinedundefinedundefinedundefined"\nRun Code Online (Sandbox Code Playgroud)\n\nedit3:我需要能够在末尾使用相同的标点符号重新组合句子。
\n好吧,你可能知道网络上的希伯来语是个混蛋。\n尝试使用这个正则表达式:
\n\n[\\s]*(\\S)+[\\s]*\nRun Code Online (Sandbox Code Playgroud)\n\n例子:
\n\nvar words = sentence.match(/[\\s]*(\\S)+[\\s]*/g);\nRun Code Online (Sandbox Code Playgroud)\n\n它确实会留下尾随空格来清除它们,您可以执行以下操作:
\n\nwords = words.join().split(" ")\nRun Code Online (Sandbox Code Playgroud)\n\n我正在尝试一些其他正则表达式变体来尝试规避连接分割黑客,如果我发现任何东西,我会更新。
\n\n另外,您可以采用“替换”方式并执行以下操作:
\n\nvar words = sentence.replace(/[#`~?!#\\$%\\.;:,]*/g, "").split(" ")\nRun Code Online (Sandbox Code Playgroud)\n\n只需确保添加可能使用的标点符号即可。
\n\n然后,要获取一个新的 HTML 字符串,其中包含用 span 标签包裹的单词,您可以执行以下操作:
\n\n这么说吧:
\n\nvar sentence = "?\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d, \xd7\x9e\xd7\x94 \xd7\xa7\xd7\x95\xd7\xa8\xd7\x94 \xd7\x9e\xd7\x94\xd7\x99\xd7\x95\xd7\x9d"\nvar words = sentence.replace(/[#`~?!#\\$%\\.;:,]*/g, "").split(" ")\nRun Code Online (Sandbox Code Playgroud)\n\n然后:
\n\nvar newSentence = encodeURI(sentence)\nwords.forEach(function(word){\n word = encodeURI(word)\n newSentence = newSentence.replace(word, "<span>" + word + "</span>")\n})\nnewSentence = decodeURI(newSentence);\nRun Code Online (Sandbox Code Playgroud)\n\nnewSentence会将您的单词用 span 标签包裹起来,同时保留标点符号: