- 浏览: 595143 次
- 性别:
- 来自: 北京
文章列表
public static String getUnicode(String source){
String returnUniCode=null;
String uniCodeTemp=null;
for(int i=0;i <source.length();i++){
uniCodeTemp = "\\u"+Integer.toHexString((int)source.charAt(i));
returnUniCode=retur ...
Java,JavaScript正则都是是nfa
业务要求 获得
T#福利模板.医疗个人~T+F#F_TEST(T#福利模板.人员姓名~T,S#个税~S)~F+T#个税~T
F# ~F 以外的 全部 T# ~T 及内容
这样F#.*?~F|(T#.*?~T) 的组1 就可以实现了
//Z#~Z C#~C B#~B T#~T E#~E P#~P S#~S如果两边没有单引号,则加入单引号
result.replaceAll("((?<!')([ZCBTESP])#.+?~\\2(?!'))", " '$1' ");
用例
R#case when '信息采集→月工作时间'>100 AND '信息采集→个人销售额'<='门店人均' then case when '信息采集→目标'=0 then C#0~C else T#信息采集.业绩~T/T#信息采集.目标~T end else ...
最近项目搞规则引擎,然后涉及到数据库的日期比较,而业务链比较长,再加上动态表的日期数据存的都是字符串,还有的业务表日期存的就是date类型数据,这样一来无法选用to_char 或者 是to_date ,所以写了个重载函数,直接返回的数据类型为date
我写了个oracle函数重载的demo 拿出来分享下,如下
CREATE OR REPLACE PACKAGE MyOverloadFunc AS
--@author:lidongbo
FUNCTION MyFunc(p_param IN NUMBER)
RETURN VARCHAR2;
PRAGMA RESTRIC ...
条件为44开头的五个数字
一、从左向右取
1.(?:\d{5})*?(44\d{3}) //错误的
12345445676784432190443231234456789222
2.\G(?:(?!44)\d{5})*(44\d{3}) //正确的
\G(?!44)\d{5}) //五个数的前两个不是44
12345445676784432190443231234456789222
二、从右向左取 (44\d{3})(?=(\d{5})+$)
12345445676784432190443231234456789222
...
(?<=(?:\{|,)color:')([^']|(?<=\\)(?<!(\\\\))')*(?=')
{value:'哈哈哈',name:'lidongbo',age:'22.0',color:'红色',color:'蓝色\'a'} (红色字体为匹配项)
这样 蓝色后面的 \' 就将 '转义了
关于表达式解释请查阅我的其他文章,或留言询问
(?:)非捕获型括号
()捕获型括号
(?:)和()唯一区别就在于一个把查找到的东西放到内存了,一个没有
(?:) 不能反向 \1 ,但(?:)节省空间
()可以
(?=exp)
表示查找一个位置,这个位置的后面是exp
(?<=exp)
表示查找一个位置,这个位置的前面是exp
(?!exp)
表示查找一个位置,这个位置的后面不是exp
(?<!exp)
表示查找一个位置,这个位置的前面不是exp
注明一下:{
(?<=exp ...
ajax 需 后台 给予 PrintWriter,而 response 一旦 打开PrintWriter 就不可以 打开 OutputStream了,所以ajax下载获得不到数据流
提供额外方式(隐藏iframe):
此方法不好:原因每次下载都会让客户端页面创建iframe
function downloadFile(url){
var elemIFrame = document.createElement("iframe");
elemIFrame .src = url;
elemIFrame . ...
http://huangyuanmu.iteye.com/blog/493149
不知道 ? 为什么是贪婪!名字起的怪怪的,我这里用UML的角度解释下 ?就是 0或者1
+→[1,无穷]
*→[0,无穷]
?→[0,1]
*,+,? 都是贪婪模式 (单一的量词都是贪婪模式,单独的*,?,+,{})尽可能多的匹配
*?,+?,??都是懒惰 ...
select e.user_id,decode(to_char(e.datatype),'3',max(e.cell_value),'2',f_sum(e.cell_value)) cell_value
from e_1099310300000000002 e
group by e.user_id,atd.datatype
这样的话就不用管sum(e.cell_value)是字符就不会报ora-01722错了,当然也可以合并,这里需求是取max不是合并
create or replace type t_sum as object (
--author lidongbo
...
function showBlockPage() {
var cover = document.all("coverMsg");
if (cover == null) {
document.forms[0].insertAdjacentHTML("beforeEnd", "<IFRAME id='coverMsg' style='filter:alpha(style=0,opacity=80); position:absolute; left:0px; top:0px;' frameborder='0' src='&qu ...
(\d)(?=(\d{3})+$)
匹配后replace成“$1,” 不包含引号
-121234567890 变成 -121,234,567,890
解释:
(\d{3})$ 以 三个数 结尾
(\d{3})+$ 多组三个数
(\d)(?=(\d{3})+) 数字后跟三个或三个以上数字
(\d)(?=(\d{3})+$) 数字后跟 以 三的倍数个数字
(\d{3})+ 三个数字为一组 这样的组 出现多次 ,即到结尾可能不是三的倍数
(\d{3})+$ 三个数字为一组 这样的组 出现多次在结尾,即到结尾应该是多组三个数
结果
附一个数值千分位匹配 正则
^[+- ...
1. 取代法
使用隐藏的<input type="file"/>控件,然后用一个只读的文本框和一个按钮来模拟<input type="file"/>的功能。
<input type="file" name="file" onpropertychange="file1.value=this.value" style=display:none/>
<input type="text" name="file ...