好吧,我卡住了。 PHP,正則表達式。我有一個字符串:匹配由空格分隔的字母數字字符
Это кириллические 23 78these are56 45latin76 letters here98 85 буквы.
而且我想使用的preg_replace()發佈包含拉丁文字母,數字和空格子與<b>標籤。子串不只是一個字,但只要下一個單詞包含拉丁字符集的話:
Этокириллические23個78these are56 45latin76字母here98 85буквы。
我最好的拍攝是:
$text = 'Это кириллические 23 78these are56 45latin76 letters here98 85 буквы.';
$regex = "/\d*\p{Latin}+(\d|\s|\p{Latin})*/iu";
preg_replace($regex, '<b>$0</b>', $text);
但它抓住不僅是 「here98」,而且下面的 「85」:
Этокириллические23個78these are56 45latin76字母here98 85буквы。
我明白爲什麼它是如此,但未能弄清楚正確的正則表達式。
你試過[A-z0-9]嗎? – hjpotter92 2012-04-02 21:22:56
@TheJumpingFrog,[A-z0-9]不考慮空格。我需要像bla34 64bla而不是bla3464bla。 – 2012-04-02 21:30:50
'([A-z0-9] | \ s)'會佔用空白嗎? – hjpotter92 2012-04-02 21:32:08