zoukankan
html css js c++ java
Ext 之 getimages.jsp
get-images.jsp:
<%
@page
import
=
"
utils.*
"
%>
<%
@page
import
=
"
java.io.*
"
%>
<%
@page
import
=
"
bean.Images
"
%>
<%
@ page
import
=
"
java.util.*,org.json.*
"
%>
<%
ArrayList array
=
new
ArrayList();
try
{
File dir
=
new
File(
"
D:/ext/examples/view/images/thumbs
"
);
String[] fs
=
dir.list();
for
(
int
i
=
0
; i
<
fs.length; i
++
)
{
if
(Regexp.isSoftRegexpValidate(fs[i].toString(),Regexp.icon_regexp) )
{
Images img
=
new
Images(
"
test
"
,
"
tews
"
,
"
images//thumbs//
"
+
fs[i],fs[i]);
array.add(img);
}
}
}
catch
(Exception e)
{
e.printStackTrace();
}
String[] param
=
{
"
name
"
,
"
size
"
,
"
url
"
,
"
lastmod
"
}
;
JsonHelper jsonHelper
=
new
JsonHelper();
out.println(jsonHelper.toString(
"
images
"
,array, param));
%>
Regexp.java
package
utils;
import
java.util.ArrayList;
import
java.util.HashMap;
import
java.util.List;
import
java.util.Set;
import
java.util.TreeSet;
import
org.apache.oro.text.regex.MalformedPatternException;
import
org.apache.oro.text.regex.PatternCompiler;
import
org.apache.oro.text.regex.PatternMatcher;
import
org.apache.oro.text.regex.Perl5Compiler;
import
org.apache.oro.text.regex.Perl5Matcher;
/** */
/**
* 类简介: 使用正则表达式验证数据或提取数据,类中的方法全为静态的 主要方法:
* 1. isHardRegexpValidate(String source, * String regexp) 区分大小写敏感的正规表达式批配
* 2. isSoftRegexpValidate(String source, String * regexp) 不区分大小写的正规表达式批配
* 3. getHardRegexpMatchResult(String source, String * regexp) 返回许要的批配结果集(大小写敏感的正规表达式批配)
* 4. getSoftRegexpMatchResult(String source, String regexp) 返回许要的批配结果集(不区分大小写的正规表达式批配)
* 5 getHardRegexpArray(String source, * String regexp) 返回许要的批配结果集(大小写敏感的正规表达式批配)
* 6. getSoftRegexpMatchResult(String * source, String regexp) 返回许要的批配结果集(不区分大小写的正规表达式批配)
* 7.getBetweenSeparatorStr(final String originStr,final char leftSeparator,final char rightSeparator) 得到指定分隔符中间的字符串的集合
*
* @mail wuzhi2000@hotmail.com
*
@author
ygj
*
*/
public
final
class
Regexp
{
/** */
/**
保放有四组对应分隔符
*/
static
final
Set SEPARATOR_SET
=
new
TreeSet();
{
SEPARATOR_SET.add(
"
(
"
);
SEPARATOR_SET.add(
"
)
"
);
SEPARATOR_SET.add(
"
[
"
);
SEPARATOR_SET.add(
"
]
"
);
SEPARATOR_SET.add(
"
{
"
);
SEPARATOR_SET.add(
"
}
"
);
}
/** */
/**
存放各种正规表达式(以key->value的形式)
*/
public
static
HashMap regexpHash
=
new
HashMap();
/** */
/**
存放各种正规表达式(以key->value的形式)
*/
public
static
List matchingResultList
=
new
ArrayList();
private
Regexp()
{
}
/** */
/**
* 返回 Regexp 实例
*
*
@return
*/
public
static
Regexp getInstance()
{
return
new
Regexp();
}
/** */
/**
* 匹配图象
*
*
* 格式: /相对路径/文件名.后缀 (后缀为gif,dmp,png)
*
* 匹配 : /forum/head_icon/admini2005111_ff.gif 或 admini2005111.dmp
*
*
* 不匹配: c:/admins4512.gif
*
*/
public
static
final
String icon_regexp
=
"
^(/{0,1}\\w){1,}\\.(gif|dmp|png|jpg)$|^\\w{1,}\\.(gif|dmp|png|jpg)$
"
;
/** */
/**
* 匹配email地址
*
*
* 格式: XXX@XXX.XXX.XX
*
* 匹配 : foo@bar.com 或 foobar@foobar.com.au
*
*
* 不匹配: foo@bar 或 $$$@bar.com
*
*/
public
static
final
String email_regexp
=
"
(?:\\w[-._\\w]*\\w@\\w[-._\\w]*\\w\\.\\w{2,3}$)
"
;
/** */
/**
* 匹配匹配并提取url
*
*
* 格式: XXXX://XXX.XXX.XXX.XX/XXX.XXX?XXX=XXX
*
* 匹配 :
http://www.suncer.com
或news://www
*
*
* 提取(MatchResult matchResult=matcher.getMatch()): matchResult.group(0)=
*
http://www.suncer.com
:8080/index.html?login=true matchResult.group(1) =
* http matchResult.group(2) = www.suncer.com matchResult.group(3) = :8080
* matchResult.group(4) = /index.html?login=true
*
* 不匹配: c:\window
*
*/
public
static
final
String url_regexp
=
"
(\\w+)://([^/:]+)(:\\d*)?([^#\\s]*)
"
;
/** */
/**
* 匹配并提取http
*
*
* 格式:
http://XXX.XXX.XXX.XX/XXX.XXX?XXX=XXX
或 ftp://XXX.XXX.XXX 或
*
https://XXX
*
* 匹配 :
http://www.suncer.com
:8080/index.html?login=true
*
*
* 提取(MatchResult matchResult=matcher.getMatch()): matchResult.group(0)=
*
http://www.suncer.com
:8080/index.html?login=true matchResult.group(1) =
* http matchResult.group(2) = www.suncer.com matchResult.group(3) = :8080
* matchResult.group(4) = /index.html?login=true
*
* 不匹配: news://www
*
*/
public
static
final
String http_regexp
=
"
(http|https|ftp)://([^/:]+)(:\\d*)?([^#\\s]*)
"
;
/** */
/**
* 匹配日期
*
*
* 格式(首位不为0): XXXX-XX-XX 或 XXXX XX XX 或 XXXX-X-X
*
*
* 范围:1900--2099
*
*
* 匹配 : 2005-04-04
*
*
* 不匹配: 01-01-01
*
*/
public
static
final
String date_regexp
=
"
^((((19){1}|(20){1})d{2})|d{2})[-\\s]{1}[01]{1}d{1}[-\\s]{1}[0-3]{1}d{1}$
"
;
//
匹配日期
/** */
/**
* 匹配电话
*
*
* 格式为: 0XXX-XXXXXX(10-13位首位必须为0) 或0XXX XXXXXXX(10-13位首位必须为0) 或
*
* (0XXX)XXXXXXXX(11-14位首位必须为0) 或 XXXXXXXX(6-8位首位不为0) 或
* XXXXXXXXXXX(11位首位不为0)
*
*
* 匹配 : 0371-123456 或 (0371)1234567 或 (0371)12345678 或 010-123456 或
* 010-12345678 或 12345678912
*
*
* 不匹配: 1111-134355 或 0123456789
*
*/
public
static
final
String phone_regexp
=
"
^(?:0[0-9]{2,3}[-\\s]{1}|\\(0[0-9]{2,4}\\))[0-9]{6,8}$|^[1-9]{1}[0-9]{5,7}$|^[1-9]{1}[0-9]{10}$
"
;
/** */
/**
* 匹配身份证
*
*
* 格式为: XXXXXXXXXX(10位) 或 XXXXXXXXXXXXX(13位) 或 XXXXXXXXXXXXXXX(15位) 或
* XXXXXXXXXXXXXXXXXX(18位)
*
*
* 匹配 : 0123456789123
*
*
* 不匹配: 0123456
*
*/
public
static
final
String ID_card_regexp
=
"
^\\d{10}|\\d{13}|\\d{15}|\\d{18}$
"
;
/** */
/**
* 匹配邮编代码
*
*
* 格式为: XXXXXX(6位)
*
*
* 匹配 : 012345
*
*
* 不匹配: 0123456
*
*/
public
static
final
String ZIP_regexp
=
"
^[0-9]{6}$
"
;
//
匹配邮编代码
/** */
/**
* 不包括特殊字符的匹配 (字符串中不包括符号 数学次方号^ 单引号' 双引号" 分号; 逗号, 帽号: 数学减号- 右尖括号> 左尖括号<
* 反斜杠\ 即空格,制表符,回车符等 )
*
*
* 格式为: x 或 一个一上的字符
*
*
* 匹配 : 012345
*
*
* 不匹配: 0123456
*
*/
public
static
final
String non_special_char_regexp
=
"
^[^'\
"
\\;,:
-<>
\\s].
+
$
"
;// 匹配邮编代码
/** */
/**
* 匹配非负整数(正整数 + 0)
*/
public
static
final
String non_negative_integers_regexp
=
"
^\\d+$
"
;
/** */
/**
* 匹配不包括零的非负整数(正整数 > 0)
*/
public
static
final
String non_zero_negative_integers_regexp
=
"
^[1-9]+\\d*$
"
;
/** */
/**
*
* 匹配正整数
*
*/
public
static
final
String positive_integer_regexp
=
"
^[0-9]*[1-9][0-9]*$
"
;
/** */
/**
*
* 匹配非正整数(负整数 + 0)
*
*/
public
static
final
String non_positive_integers_regexp
=
"
^((-\\d+)|(0+))$
"
;
/** */
/**
*
* 匹配负整数
*
*/
public
static
final
String negative_integers_regexp
=
"
^-[0-9]*[1-9][0-9]*$
"
;
/** */
/**
*
* 匹配整数
*
*/
public
static
final
String integer_regexp
=
"
^-?\\d+$
"
;
/** */
/**
*
* 匹配非负浮点数(正浮点数 + 0)
*
*/
public
static
final
String non_negative_rational_numbers_regexp
=
"
^\\d+(\\.\\d+)?$
"
;
/** */
/**
*
* 匹配正浮点数
*
*/
public
static
final
String positive_rational_numbers_regexp
=
"
^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$
"
;
/** */
/**
*
* 匹配非正浮点数(负浮点数 + 0)
*
*/
public
static
final
String non_positive_rational_numbers_regexp
=
"
^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$
"
;
/** */
/**
*
* 匹配负浮点数
*
*/
public
static
final
String negative_rational_numbers_regexp
=
"
^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
"
;
/** */
/**
*
* 匹配浮点数
*
*/
public
static
final
String rational_numbers_regexp
=
"
^(-?\\d+)(\\.\\d+)?$
"
;
/** */
/**
*
* 匹配由26个英文字母组成的字符串
*
*/
public
static
final
String letter_regexp
=
"
^[A-Za-z]+$
"
;
/** */
/**
*
* 匹配由26个英文字母的大写组成的字符串
*
*/
public
static
final
String upward_letter_regexp
=
"
^[A-Z]+$
"
;
/** */
/**
*
* 匹配由26个英文字母的小写组成的字符串
*
*/
public
static
final
String lower_letter_regexp
=
"
^[a-z]+$
"
;
/** */
/**
*
* 匹配由数字和26个英文字母组成的字符串
*
*/
public
static
final
String letter_number_regexp
=
"
^[A-Za-z0-9]+$
"
;
/** */
/**
*
* 匹配由数字、26个英文字母或者下划线组成的字符串
*
*/
public
static
final
String letter_number_underline_regexp
=
"
^\\w+$
"
;
/** */
/**
* 添加正规表达式 (以key->value的形式存储)
*
*
@param
regexpName
* 该正规表达式名称 `
*
@param
regexp
* 该正规表达式内容
*/
public
void
putRegexpHash(String regexpName, String regexp)
{
regexpHash.put(regexpName, regexp);
}
/** */
/**
* 得到正规表达式内容 (通过key名提取出value[正规表达式内容])
*
*
@param
regexpName
* 正规表达式名称
*
*
@return
正规表达式内容
*/
public
String getRegexpHash(String regexpName)
{
if
(regexpHash.get(regexpName)
!=
null
)
{
return
((String) regexpHash.get(regexpName));
}
else
{
System.out.println(
"
在regexpHash中没有此正规表达式
"
);
return
""
;
}
}
/** */
/**
* 清除正规表达式存放单元
*/
public
void
clearRegexpHash()
{
regexpHash.clear();
return
;
}
/** */
/**
* 大小写敏感的正规表达式批配
*
*
@param
source
* 批配的源字符串
*
*
@param
regexp
* 批配的正规表达式
*
*
@return
如果源字符串符合要求返回真,否则返回假 如: Regexp.isHardRegexpValidate("ygj@suncer.com.cn",email_regexp) 返回真
*/
public
static
boolean
isHardRegexpValidate(String source, String regexp)
{
try
{
//
用于定义正规表达式对象模板类型
PatternCompiler compiler
=
new
Perl5Compiler();
//
正规表达式比较批配对象
PatternMatcher matcher
=
new
Perl5Matcher();
//
实例大小大小写敏感的正规表达式模板
org.apache.oro.text.regex.Pattern hardPattern
=
compiler.compile(regexp);
//
返回批配结果
return
matcher.contains(source, hardPattern);
}
catch
(MalformedPatternException e)
{
e.printStackTrace();
}
return
false
;
}
/** */
/**
* 不区分大小写的正规表达式批配
*
*
@param
source
* 批配的源字符串
*
*
@param
regexp
* 批配的正规表达式
*
*
@return
如果源字符串符合要求返回真,否则返回假 Regexp.isHardRegexpValidate("ygj@suncer.com.cn",email_regexp) 返回真
*/
public
static
boolean
isSoftRegexpValidate(String source, String regexp)
{
try
{
//
用于定义正规表达式对象模板类型
PatternCompiler compiler
=
new
Perl5Compiler();
//
正规表达式比较批配对象
PatternMatcher matcher
=
new
Perl5Matcher();
//
实例不区分大小写的正规表达式模板
org.apache.oro.text.regex.Pattern softPattern
=
compiler.compile(regexp,Perl5Compiler.CASE_INSENSITIVE_MASK);
//
返回批配验证值
return
matcher.contains(source, softPattern);
}
catch
(MalformedPatternException e)
{
e.printStackTrace();
}
return
false
;
}
}
Images.java
package
bean;
public
class
Images
{
private
String name;
private
String size;
private
String lastmod;
private
String url;
public
Images()
{
}
public
Images(String size, String lastmod, String url,String name)
{
this
.size
=
size;
this
.lastmod
=
lastmod;
this
.url
=
url;
this
.name
=
name;
}
public
String getSize()
{
return
size;
}
public
void
setSize(String size)
{
this
.size
=
size;
}
public
String getUrl()
{
return
url;
}
public
void
setUrl(String url)
{
this
.url
=
url;
}
public
String getName()
{
return
name;
}
public
void
setName(String name)
{
this
.name
=
name;
}
public
String getLastmod()
{
return
lastmod;
}
public
void
setLastmod(String lastmod)
{
this
.lastmod
=
lastmod;
}
}
JsonHelper.java
package
utils;
import
java.util.ArrayList;
import
java.util.List;
import
org.json.JSONArray;
import
org.json.JSONObject;
import
bean.Images;
/** */
/**
* json工具类
* 使用方法
* toString()
*
@author
meetrice 2007-12-25 14:08:49
*
*/
public
class
JsonHelper
{
public
String toString(String root,List array, String[] param)
{
String result
=
new
String();
try
{
JSONArray jsonArray
=
new
JSONArray();
for
(
int
i
=
0
; i
<
array.size(); i
++
)
{
JSONReflectObject reflectObject
=
new
JSONReflectObject(array.get(i), param);
jsonArray.put(reflectObject);
}
result
=
new
JSONObject().put(root, jsonArray).toString();
}
catch
(Exception e)
{
}
return
result;
}
public
static
void
main(String[] args)
{
ArrayList array
=
new
ArrayList();
Images maryLebow
=
new
Images(
"
2342
"
,
"
234234234
"
,
"
images//thumbs//zack_dress.jpg
"
,
"
zack_dress.jpg
"
);
Images amySmith
=
new
Images(
"
2342
"
,
"
234234234
"
,
"
images//thumbs//zack_dress.jpg
"
,
"
zack_dress.jpg
"
);
Images johnKim
=
new
Images(
"
2342
"
,
"
234234234
"
,
"
images//thumbs//zack_dress.jpg
"
,
"
zack_dress.jpg
"
);
array.add(maryLebow);
array.add(amySmith);
array.add(johnKim);
String[] param
=
{
"
name
"
,
"
size
"
,
"
url
"
,
"
lastmod
"
}
;
JsonHelper jsonHelper
=
new
JsonHelper();
System.out.println(jsonHelper.toString(
"
images
"
,array, param));
}
}
查看全文
相关阅读:
[HAOI2015]按位或——Min-Max容斥+FWT
HDU 4773 Problem of Apollonius——圆反演
类欧几里得小结
线性规划(单纯形法)知识整理
奇怪的数学题(51nod1847)——min_25筛+杜教筛+第二类斯特林数
CSP-S 2019 游记
2019.11.11~2019.11.12考试总结
2019.11.6~2019.11.7考试总结
1019.11.1~2019.11.2考试总结
Final-阶段站立会议4
原文地址:https://www.cnblogs.com/meetrice/p/1216736.html
最新文章
uva514Rails
HDU 1082 Matrix Chain Multiplication
2019-2020"新生赛"长沙理工大学程序设计竞赛E题合法括号
poj2228 Naptime (环形DP)
Antinomy与红玉海
潍坊学院第四届acm程序设计竞赛I题(Bob的难题)
AW282. 石子合并
Super Jumping! Jumping! Jumping!
UVA 11624(两次bfs)
P2296 寻找道路(dfs+spfa)
热门文章
Hdu 1259 World Exhibition(差分约束)
POJ 1201 Intervals(差分约束)
ZOJ 2770 Burn the Linked Camp(裸差分约束)
POJ 1511 Invitation Cards (堆优化Dijstra)
ZOJ 2008 堆优化的Dijstra
POJ 1122 FDNY to the Rescue!(最短路)
ZOJ 1053 FDNY to the Rescue!(最短路)
HDU
SPOJ 1812
Our Story Begins
Copyright © 2011-2022 走看看