小编Rex*_*ars的帖子

为什么我不能在单词边界旁边使用重音字符?

我正在尝试制作一个与人名相匹配的动态正则表达式.它在大多数名称上都没有问题,直到我在名称的末尾遇到重音字符.

示例:一些FancyNamé

我到目前为止使用的正则表达式是:

/\b(Fancy Namé|Namé)\b/i
Run Code Online (Sandbox Code Playgroud)

像这样使用:

"Goal: Some Fancy Namé. Awesome.".replace(/\b(Fancy Namé|Namé)\b/i, '<a href="#">$1</a>');
Run Code Online (Sandbox Code Playgroud)

这根本不匹配.如果我用ae替换é,它就匹配得很好.如果我尝试匹配诸如"SomeFancyNaméa"这样的名字,它就可以了.如果我删除单词最后一个单词边界锚,它就可以正常工作.

为什么单词border flag不在这里工作?关于如何解决这个问题的任何建议?

我考虑过使用类似的东西,但我不确定性能惩罚会是什么样的:

"Some fancy namé. Allow me to ellaborate.".replace(/([\s.,!?])(fancy namé|namé)([\s.,!?]|$)/g, '$1<a href="#">$2</a>$3')
Run Code Online (Sandbox Code Playgroud)

建议?想法?

javascript regex unicode replace diacritics

8
推荐指数
2
解决办法
4389
查看次数

缓存分页结果,清除更新 - 如何解决?

我创建了一个论坛,我们正在实现一个apc和memcache缓存解决方案来保存数据库的一些工作.

我开始使用像"Categories :: getAll"这样的键来实现缓存层,如果我有特定于用户的数据,我会用像用户ID之类的东西来附加密钥,这样你就可以得到"User::getFavoriteThreads|1471".当用户添加新的收藏夹线程时,我将删除缓存键,它将重新创建该条目.

然而,问题出现了:

我想在论坛中缓存线程.很简单,"论坛:: getThreads | $ iForumId".但是......通过分页,我必须将其分成几个缓存条目,例如

"Forum::getThreads|$iForumId|$iLimit|$iOffset".
Run Code Online (Sandbox Code Playgroud)

哪个好,直到有人在论坛中发布新帖子.我现在必须删除所有键"Forum::getThreads|$iForumId",无论限制和偏移是什么.

什么是解决这个问题的好方法?我真的宁愿不循环遍历每个可能的限制和偏移,直到找到不再匹配的东西.

谢谢.

php memcached pagination caching

5
推荐指数
3
解决办法
3219
查看次数