问一下:
这个确实是用户输入的字符串吗? 还是用户输入内容的html源码?
个人觉得既然是js里面做, 可以考虑下面方式:
var srcStr = '57< img src="/dev-build/5c1800f8cea587969777d0e2a11ec895.png" class="face-pic" data-labface="4">fd< img src="/dev-build/1157a424588a6732a95ac1d622e129d0.png" class="face-pic" data-labface="17">12< img src="/dev-build/bc2e80fa39a2f7d95737fdbec02c0b27.png" class="face-pic" data-labface="21">比比'
// "
.replace(/< img/g, '
######哇瑟,我测试了下是我要的结果呢,谢谢这位大神。。。。######空格是我黏贴进去的时候产生的,可以忽略。。。######这个是用户输入的一段文本,里面包括文字内容和表情,图片就是表情,我想取出的是 文本内容 和 表情符号中的data-labface属性的值, 例如 ['57', '4', 'fd', '17', '12', '21', '比比']######
今儿个心情好,做一下活雷锋 JavaScript: ==================== var myregexp = /src="([^"]+)" class="face-pic" data-labface="(\d+)"/img; var match = myregexp.exec(subject); while (match != null) { for (var i = 0; i < match.length; i++) { // matched text: match[i] } match = myregexp.exec(subject); }
Java: ====================
try { Pattern regex = Pattern.compile("src=\"([^\"]+)\" class=\"face-pic\" data-labface=\"(\\d+)\"", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.MULTILINE); Matcher regexMatcher = regex.matcher(subjectString); while (regexMatcher.find()) { for (int i = 1; i <= regexMatcher.groupCount(); i++) { // matched text: regexMatcher.group(i) // match start: regexMatcher.start(i) // match end: regexMatcher.end(i) } } } catch (PatternSyntaxException ex) { // Syntax error in the regular expression }
php
=================
preg_match_all('/src="([^"]+)" class="face-pic" data-labface="(\d+)"/im', $subject, $result, PREG_SET_ORDER); for ($matchi = 0; $matchi < count($result); $matchi++) { for ($backrefi = 0; $backrefi < count($result[$matchi]); $backrefi++) { # Matched text = $result[$matchi][$backrefi]; } } ######
js代码:
console.log('57< img src="/dev-build/5c1800f8cea587969777d0e2a11ec895.png" class="face-pic" data-labface="4">fd< img src="/dev-build/1157a424588a6732a95ac1d622e129d0.png" class="face-pic" data-labface="17">12< img src="/dev-build/bc2e80fa39a2f7d95737fdbec02c0b27.png" class="face-pic" data-labface="21">比比'.match(/data-labface="[0-9]+"/gi));
自己根据情况改正则,这里只匹配了数字,大小写不敏感
/data-labface="[0-9]+"/gi
==========================
nginx +tomcat+memcached集群,写session不生效:报错
(2台)tomcat+memcached做了集群,sessionID在不同tomcat上相同的,但是给session赋值的时候,发现两边session不同步.非要给nginx 的upstream 配置上 jvm参数后,才能同步,这样配置对不?
还是配置的问题吧,如果你给nginx加上配置可以的话,那就不是mem的共享session了,而是nginx提供的session,
所以你需要配置的还是tomcat与mem之间的session共享问题
附:
Tomcat间session共享问题,解决方案选择:
多个tomcat要一起协同工作有几种办法,可以考虑的方案有以下几个:
1.使用tomcat自带的cluster方式,多个tomcat见自动实时复制session信息,配置起来很简单。但这个方案的效率比较低,在大并发下表现并不好。
2.利用nginx的基于访问ip的hash路由策略,保证访问的ip始终被路由到同一个tomcat上,这个配置更简单。但是我们的应用很可能是某一个局域网大量用户同时登录,这样负载均衡就没什么作用了。
3. 利用memcached把多个tomcat的session集中管理,这是最直接的解决方案,但是操作起来也最为复杂。
我们的系统既要求性能,又要比较好的利用上负载均衡,所以第3个方案是首选。接下来就是安装搭建之路了。
######session写进memcached呢
######
session写进memcached了.打开页面的时候,发现两边tomcat的session内容一致,当给某个session.setattribute后,两边就不一样,删除也是
######
@快慢机 没有解决. 先用着了######这个问题楼主怎么解决的啊######
@xf
我们使用memcached共享.context.xml的配置.这样设置有问题吗
memcachedNodes="n1:10.24.60.2:12000"
requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
######
@蟋蟀哥哥
memcached不一定非要2台吧?######
一台。。我也认为是客户端轮询两台webserver造成的问题。
nginx hash下。。应该能解决######@
蟋蟀哥哥
要是hash的话,服务器宕机,还是没办法无缝切换 .######一台的话系统形成单点了, 可靠性有问题######@
JackyYeong memcached确实只有一台,主要问题是tomcat2台之间session不复制,在nginx上使用hash策略,也不能保证宕机切换状态保持.######session可以共享了,但是刷新了会丢失