Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中通过正则表达式在单词边界处匹配希伯来文字符?_Javascript_Regex_Unicode - Fatal编程技术网

在javascript中通过正则表达式在单词边界处匹配希伯来文字符?

在javascript中通过正则表达式在单词边界处匹配希伯来文字符?,javascript,regex,unicode,Javascript,Regex,Unicode,我能够用JS匹配并突出显示这封希伯来文信: var myText = $('#text').html(); var myHilite = myText.replace(/(\u05D0+)/g,"<span class='highlight'>$1</span>"); $('#text').html(myHilite); 我知道JS是(最好是服务器端),但我也知道我不擅长正则表达式。这是JS中的限制还是我语法中的错误?我看不懂希伯来语。。。这个正则表达式是你想要的吗

我能够用JS匹配并突出显示这封希伯来文信:

var myText = $('#text').html();
var myHilite = myText.replace(/(\u05D0+)/g,"<span class='highlight'>$1</span>");
$('#text').html(myHilite);


我知道JS是(最好是服务器端),但我也知道我不擅长正则表达式。这是JS中的限制还是我语法中的错误?

我看不懂希伯来语。。。这个正则表达式是你想要的吗

/(\S*[\u05D0]+\S*)/g
您的第一个正则表达式
/(\u05D0+)/g
仅与您感兴趣的字符匹配

第二个正则表达式,
/(\u05D0)\b/g
,仅当您感兴趣的字符是单词边界前的最后一个唯一字符(或最后重复的字符)时才匹配…因此,它与单词开头或中间的字符不匹配

编辑:

看看这个答案

根据答案中的信息,我得出了这个正则表达式,对吗


/([\u05D0])(?=\s |$)/g

使用以下regexp如何,该regexp使用句子中单词的所有大小写:

/^u05D0\s|\u05D0$|\u05D0\s|^\u05D0$/
它实际上使用了4个带有OR运算符(“|”)的正则表达式

  • 要么字符串以确切的单词开头,后跟空格
  • 或者字符串有空格+单词+空格
  • 或者字符串以空格+单词结尾
  • 或者您的字符串仅是确切的单词

  • 似乎在任何位置匹配包含该字母的任何单词:--但基本上,您尝试使用\S而不是\b?您希望仅将该字符作为单词中的最后一个字符进行匹配,还是希望在单词边界的开头进行匹配?我认为仅作为单词中的最后一个字符进行匹配。我不清楚两者之间的区别(我在正则表达式方面也很差劲)。re:edit-这与我想要的位置的字母匹配。我所希望的是匹配字母所在位置的每个单词。。这有意义吗?我将检查q&a..As
    \u05D0
    是否被视为非单词字符。如果后面跟有另一个非单词字符(如空格),则不会有单词边界。若要在
    \u05D0
    之后有一个单词边界,它后面必须跟一个单词字符
    [a-zA-Z0-9\
    /^u05D0\s|\u05D0$|\u05D0\s|^\u05D0$/