好吧,我卡住了。 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