正则表达式中:括号中的括号
正则表达式"([a-z]+)(=)(([a-z]+)\\s+([a-z]+))"中有内嵌括号,那么在match之后,group总个数和group序是怎么安排的? 来例示吧。让原文 = "name=kent chen",则在match之后, groupCount = 5 $1 = "name" $2 = "=" $3 = "kent chen" $4 = "kent" $5 = "chen"
正则表达式"([a-z]+)(=)(([a-z]+)\\s+([a-z]+))"中有内嵌括号,那么在match之后,group总个数和group序是怎么安排的? 来例示吧。让原文 = "name=kent chen",则在match之后, groupCount = 5 $1 = "name" $2 = "=" $3 = "kent chen" $4 = "kent" $5 = "chen"
下面的代码会把原文中的人名加粗(加<b>标签) public static void main(String[] args) { Pattern p = Pattern.compile("(name)([=:])([a-zA-Z]+)", Pattern.CASE_INSENSITIVE); Matcher m = p .matcher("Money was transferred to from one person [name=John] to another [Name:Kent]"); StringBuffer newMsg = new StringBuffer(); while (m.find()) { m.appendReplacement(newMsg, "$1$2<b>$3</b>"); } m.appendTail(newMsg); System.out.println(newMsg.toString()); } 执行结果:Money was transferred to from one person [name=<b>John</b>] to another [Name:<b>Kent</b>]
1. 先在virtualbox里配一下 2. 启动ubuntu后,sudo vi /etc/rc.local, 有exit 0之前加上: 引用 mount.vboxsf -o rw,uid=1000,gid=1000 KentLinuxTools /home/kent/dev/tools 3. 执行:sudo /etc/rc.local
解决办法: 1: <plugin> 2: <groupId>org.apache.maven.plugins</groupId> 3: <artifactId>maven-compiler-plugin</artifactId> 4: <version>2.0.2</version> 5: <configuration> 6: <source>1.6</source> 7: <target>1.6</target> 8: <encoding>UTF-8</encoding> 9: </configuration> 10: </plugin>
使用高亮功能时,如果用了"hl.mergeContiguous"选项,得到的snippet大小可能会远远大于你所指定的fragsize.
假设两个client竞争一个锁,拿到锁的client有资格处理指定的资源。系统的设计目标是同一时刻只有一个client在处理资源。 假设当前client1拿到锁了,client2等待中。 client1正在处理指定资源。 这时client1断开,client2拿到锁,开始处理指定资源;但由于client1并不知道自己已经断开了,所以会继续处理资源,结果造成两个client都在处理同一个资源。 解决办法是每个client在处理时要时不时地轮询自己跟zk是否已经断开连接。 见: http://stackoverflow.com/questions/14275613/concerns-about-zookeepers-lock-recipe
可以通过比较CONNECTION_LOSS和SESSION_EXPIRED这两种错误,来理解Connection和Session之间的关系: 官方释义 底层本质 跟CONNECTION_LOSS的关系 跟SESSION_EXPIRED的关系 重连 连接保持机制 CONNECTION_LOSS link broken TCP短连接超时? 或长连接心跳失败? (待看代码) N/A 如果在SESSION Timeout到期之间重连成功,则无SESSION EXPIRED; 否则,则意味着SESSION_EXPIRED ZK客户端自动重连 tcp keepalive机制? (待看代码) SESSION_EXPIRED "partitioned"for more than the session timeout 应该跟底层无关(待看代码) 很有可能是由CONNECTION_LOSS导致的 N/A 客户端自己决定是否重连 ping心跳
如果一个系统被拆成了两个,则一般要搞两个代码工程,对应两个SVN代码仓库,本地开发时需要起两个应用。 如果从逻辑上来说这个系统的功能很少,拆成两个还是很影响效率的。所以能不拆就不拆吧。
ack()机制 = 当消费者消费完消息、并回送ack()后,消息中间件才能认为此消息已被成功消费。 无ack机制 = 消费端拿到消息后,中间件就认为消费端已成功处理 在“ACK机制”下,如果消费端在拿消息A后出异常或者当机,当它从异常或当机中恢复时,又于出错前没有回送ACK,消息中间件就会重发消息,消费端就有了一次补偿处理的机会。 在“无ACK机制”下,就没有补偿处理的机会,也就会造成数据的不一致。
Document太大,则解析、分词、高亮慢;Document太小,可能造成记录数过多。 两种情形都会影响查询效率。