2009-12-16 35 views

回答

2

感谢您的答案,

为我的作品的一个是的preg_match( “/^\ p {}希伯来语​​+ $/U”, “שלום”);

5

尝试此正则表达式描述Unicode character properties

/\p{Hebrew}+/u 
+0

但回声preg_match(“/ \ p {希伯来语} + /”,“שלון”);返回0 ... – 2009-12-16 18:36:13

+1

@Haim Bender:您需要设置* u *修饰符。 – Gumbo 2009-12-16 18:57:34

+0

描述的'\ p {希伯来语}'快捷方式在哪里?我以前从来没有见过。 – troelskn 2009-12-16 20:59:19

5

假设源数据是UTF-8编码

$input = "ט״סת תעסתינג O״ת סOמע העברעו תעחת"; 

preg_match_all("/[\\x{0590}-\\x{05FF}]+/u", $input, $matches); 

echo '<pre>'; 
print_r($matches); 
echo '</pre>'; 

息率

Array 
(
    [0] => Array 
     (
      [0] => ט״סת 
      [1] => תעסתינג 
      [2] => ״ת 
      [3] => ס 
      [4] => מע 
      [5] => העברעו 
      [6] => תעחת 
     ) 

) 

我基于的0590的范围内通过05FF在this Unicode chart(编辑:发现更好的希伯来语/ unicode信息here)。我用this来生成我的样本输入。由于我不知道希伯来语,我无法确认匹配的输出是否有效。

你可能需要调整它,但希望这会让你朝着正确的方向前进。

+0

它为什么匹配空间? – 2009-12-16 18:48:00

+0

酷!,并感谢btw :) – 2009-12-16 18:49:36

+0

我只需要检查一个字符串是否是希伯来语中的单个单词,我是否需要在正则表达式中指定字符串的开始和结束?我怎样才能实现这个? – 2009-12-16 18:56:49