Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
C++ 用于识别希伯来unicode字符或仅希伯来字符的正则表达式_C++_Regex_Unicode_Hebrew - Fatal编程技术网

C++ 用于识别希伯来unicode字符或仅希伯来字符的正则表达式

C++ 用于识别希伯来unicode字符或仅希伯来字符的正则表达式,c++,regex,unicode,hebrew,C++,Regex,Unicode,Hebrew,我试图找出一个正则表达式,与Flex正则表达式引擎一起使用,并使用C++,这样我就可以从我的编程语言中解析一个结构,其中的关键字是希伯来语。正则表达式需要识别的构造/模式之一是: קו 我试过的正则表达式: “קו” (קו) [\u05E7\u05D5] [\u05D5]{1}[\u05E7]{1} [^\b\u05D5][\u05E7\b] 第一个有效,但我的另一个正则表达式模式也识别了它,我不想要它,它是: `[קראטוןםפשדגכעיחלךףזסבהנמצתץ]+` 此外,尝试对

我试图找出一个正则表达式,与Flex正则表达式引擎一起使用,并使用C++,这样我就可以从我的编程语言中解析一个结构,其中的关键字是希伯来语。正则表达式需要识别的构造/模式之一是:

קו

我试过的正则表达式:
“קו”
(קו)
[\u05E7\u05D5]
[\u05D5]{1}[\u05E7]{1}
[^\b\u05D5][\u05E7\b]

第一个有效,但我的另一个正则表达式模式也识别了它,我不想要它,它是:

`[קראטוןםפשדגכעיחלךףזסבהנמצתץ]+`
此外,尝试对下面的上述模式使用unicode-它不起作用
[\u05D0-\u05EA]+

理想情况下,我希望我的正则表达式模式能够匹配以下字符串组合或下面的字符串组合

קואחד=שלום
קו אחד

对于以上内容,我尝试了这些正则表达式模式,但没有一种有效:

ק+
(四)+
[法]

理想情况下,在我的所有正则表达式中,我希望使用unicode字符。

此外,这是我用于unicode字符的表:

此外,我已经看过这些问题,也尝试过张贴的解决方案,但没有任何效果。我只想对没有点的希伯来文字母使用unicode系统,这只是unicode字符u05D0-u05EA,这些问题涉及点系统的unicode字符。无论如何,我似乎无法用非点式unicode字符替换点式unicode字符:




您需要使用两个字符范围

  • U+0590-05FF
    /*פ,ש*/
    )和
  • U+FB1D-FB4F
    /*压力:ﬡ,טּ*/
因此,您可以尝试使用正则表达式:

[\u0590-\u05FF\uFB1D-\uFB4F]+

我认为您应该能够使用语法
\p{Hebrew}
,来指示希伯来语的Unicode脚本类别属性。看见我不太熟悉PHP中的正则表达式处理,不知道是否需要围绕它包装一些额外的语法,或者使用一些特定的PHP标志来指示它。但据我所知,PHP的正则表达式引擎是符合PCRE的,并且所有符合PCRE的引擎都支持指定在中定义的Unicode脚本类别属性。另请参阅参考资料,其中显示了
\p{Hebrew}引用的Unicode代码点范围(以及其间的各个代码点)
property-似乎总共有134个代码点:0591..05BD,05BE,05BF,05C0,05C1..05C2,05C3,05C4..05C5,05C6,05C7,05D0..05EA,05EF..05F2,05F3..05F4,FB1D,FB1E,FB1F..28,FB29,FB2A..36,FB38..3C,FB3E,FB40..41,FB43..44,FB46。。FB4F@WiktorStBijava EW C++ReGEX看起来与JavaScript ReXEX不同。@ SLeStWoWaBuk:我道歉,我不使用PHP。我意识到链接问题似乎有误导性,所以我更改了链接标签。我使用C++——我在PHP的阅读中遇到了这个代码> \p{HeBurW} /Cuth>,这是一个非常好的资产。你知道C++中包含了什么分类吗?根据我的研究,我找不到任何迹象表明这一点。这并不重要,因为所有这些正则表达式引擎的Unicode单位都是相同的
\p{Hebrew}
不受
std::regex
的支持,但是您可以试试
boost::regex
。它可以识别“•חא”,但无法识别下一行。看来这更像是野牛的问题。