Iam使用雙字節japaneese字符網站工作,我需要檢查用戶輸入在php平臺中開發的單字節katakana.Site。如何檢查字符串中的單字節片假名
這是我用來檢查 預浸匹配 '/ \ X {} 3040 - \ X {} 309F]/U'
Iam使用雙字節japaneese字符網站工作,我需要檢查用戶輸入在php平臺中開發的單字節katakana.Site。如何檢查字符串中的單字節片假名
這是我用來檢查 預浸匹配 '/ \ X {} 3040 - \ X {} 309F]/U'
我不是100%肯定,如果這個測試字符串我使用是合法的$string
。如果結果不同,我會刪除答案(或嘗試更新它)。由於字符串是手動輸入(最初轉義了反斜槓),而不是原始的;
$string = "\\xe3\\x80\\x85"; // RAW input might still be '\xe3\x80\x85' here
$result = preg_match_all("/\\\\xe3\\\\x8[0-3]\\\\x[8-9a-b][0-9a-f]/u", $string, $matches);
echo $string;
echo '<pre>';
print_r($matches);
echo '</pre>';
這打印出來;
\xe3\x80\x85
Array
(
[0] => Array
(
[0] => \xe3\x80\x85
)
)
因此; 々
我使用單字節字符'ァ'進行了檢查,但'$ matches'結果爲空 – user2251926 2013-04-23 05:56:03
嘗試使用轉義斜槓(在這種情況下,在所有3個位置上,RegEx本身*和* PHP都可以逃脫)打破字節碼的匹配),因此每個地方都有''\\\\'',可能在你的原始條紋中ng的情況下只有'「\\」'就足夠了,但是從邏輯上來說,這隻會讓PHP逃脫它,而不是RegEx。也許你甚至需要''''''(6)其中。 – 2013-04-23 06:05:08
像這樣? '/ \\\\\ x3040 - \\\\\ x309F/u'。 PHP有非常奇怪的RegEx *方法*。此外,你檢查是否「逃脫」x「約3040次,這是不正確的:) – 2013-04-23 05:33:24
其實這種模式是用來檢查片假名,在這裏它檢查單字節和雙字節片假名'/ ^(\ xe3 \ x82 [\ xa1- \ xbf] | \ xe3 \ x83 [\ x80- \ xbe])+ $ /' [http://www.utf8-chartable.de/unicode-utf8-table.pl?start=12288&names=-&utf8=string-字面] – user2251926 2013-04-23 05:37:34
@Allendar,preg意味着perl兼容正則表達式,並且在perl中,一個unicode文字是用\ x {NNNNNN}語法編寫的,所以這可能就是爲什麼op使用這種語法。 – 7stud 2013-04-23 05:54:37