正则表达式“或“的使用

正则表达式“或“的使用,第1张

正则表达式,又称规则表达式。是计算机科学的一个概念。

正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串 *** 作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。

正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。


扩展资料

正则表达式的作用:

1、匹配

检查字符串是否符合正则表达式中的规则,有一次不匹配,则返回false。如:

String str="abc";

String reg="[a-zA-Z]\\d";//次表达式表示字符串的第一位只能是字母,第二位只能是数字或没有boolean flag=strmatches(reg);//返回结果为true。

2、切割

所谓切割,即是按一定的规则将字符串分割成多个子字符串,如:

String str="zhangsan,lishi,wangwu"。

String reg=",";//表示以逗号作为切割符。

String[] arr=strsplit(reg);//返回结果为{“zhangsan”,"lisi","wangwu}。

3、替换

即将字符串中符合规则的字符替换成指定字符,如:

String str="sfhjhfh136hjasdf73466247fsjha8437482jfjsfh746376"。

strreplaceAll("\\d{3,}","#");//表示将连续出现三个或三个以上的数字替换成“#”。

参考资料来源:百度百科-正则表达式

var s = '20-Sep-2018 14:58:39686 信息 [localhost-startStop-1] orgapachejasperservletTldScannerscanJars At least one JAR was scanned for TLDs yet contained no TLDs Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them'+
'20-Sep-2018 14:58:39693 信息 [localhost-startStop-1] orgapachecatalinastartupHostConfigdeployDirectory Deployment of web application directory E:\apache\apache-tomcat-8050\webapps\manager has finished in 293 ms'+
'20-Sep-2018 14:58:39693 信息 [localhost-startStop-1] orgapachecatalinastartupHostConfigdeployDirectory Deploying web application directory E:\apache\apache-tomcat-8050\webapps\ROOT'+
'20-Sep-2018 14:58:40008 息 [localhost-startStop-1] orgapachejasperservletTldScannerscanJars At least one JAR w';
smatch(/\d{2}:\d{2}:\d{2}\\d{3}(=\s+信息)/g);

匹配任意字符 [\s\S] 或者 [\w\W]

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

许多程序设计语言都支持利用正则表达式进行字符串 *** 作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)) *** 作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。

String img = "sdf<img src=\"ss\"  width=\"232\" alt=\"df\" />sdf"
     + "<img alt=\"helloworld\" border=\"1\" height=\"100\" src=\"abadd爱的发撒的发到付facjsdfasdfpg\" />sdfsd" + "<img src=  width= alt=>";
     
String reg = "(i)[\\s\\S](\\<img\\salt\\s\\=border\\s\\=height\\s\\=src\\s\\=\\/\\>)[\\s\\S]";
// Systemoutprint (imgreplaceAll (reg, "$1"));
Pattern pattern = Patterncompile (reg);
Matcher matcher = patternmatcher (img);
while (matcherfind ())
{
Systemoutprintln (matchergroup ()replaceAll (reg, "$1"));
}

太长了,就不一个一个说了,而且你的正则里有乱码或者其他字符信息
一般正则的号不会出现在字符符号的前面
号出现在字符符号的后面,代表一个或0个前面的字符
号出现在字符符号的后面,代表0个或多个前面的字符
+号出现在字符符号的后面,代表1个或多个前面的字符
你的正则里面\\s比较多,代表空格,貌似是java语言的正则写法
\\s+代表此处有1个或多个空格 \\s此处有0个或多个空格
结合后面的关键字or and union等等 这个正则应该是判断sql语句合法性的

一般的web server有两部分日志:

一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息

二是访问日志信息,它记录的访问的时间,IP,访问的资料等相关信息。

现在我来和大家介绍一下利用tomcat产生的访问日志数据,我们能做哪些有效的分析数据?

首先是配置tomcat访问日志数据,默认情况下访问日志没有打开,配置的方式如下:

编辑 ${catalina}/conf/serverxml文件注:${catalina}是tomcat的安装目录

把以下的注释(<!-- -->)去掉即可。

<!--

<Valve className="orgapachecatalinavalvesAccessLogValve"

directory="logs"  prefix="localhost_access_log" suffix="txt"

pattern="common" resolveHosts="false"/>

-->

其中 directory是产生的目录 tomcat安装${catalina}作为当前目录

pattern表示日志生产的格式,common是tomcat提供的一个标准设置格式。其具体的表达式为 %h %l %u %t "%r" %s %b

但本人建议采用以下具体的配置,因为标准配置有一些重要的日志数据无法生。

%h %l %u %t "%r" %s %b %T

具体的日志产生样式说明如下(从官方文档中摘录):

 %a - Remote IP address

 %A - Local IP address

 %b - Bytes sent, excluding >

 %B - Bytes sent, excluding >

 %h - Remote host name (or IP address if resolveHosts is false)

 %H - Request protocol

 %l - Remote logical username from identd (always returns '-')

 %m - Request method (GET, POST, etc)

 %p - Local port on which this request was received

 %q - Query string (prepended with a '' if it exists)

 %r - First line of the request (method and request URI)

 %s - >

 %S - User session ID

 %t - Date and time, in Common Log Format

 %u - Remote user that was authenticated (if any), else '-'

 %U - Requested URL path

 %v - Local server name

 %D - Time taken to process the request, in millis

 %T - Time taken to process the request, in seconds

There is also support to write information from the cookie, incoming

header, the Session or something else in the ServletRequest It is

modeled after the apache syntax:

 %{xxx}i for incoming headers

 %{xxx}c for a specific cookie

 %{xxx}r xxx is an attribute in the ServletRequest

 %{xxx}s xxx is an attribute in the >

现在我们回头再来看一下下面这个配置 %h %l %u %t "%r" %s %b %T 生产的访问日志数据,我们可以做哪些事

先看一下,我们能得到的数据有:

 %h 访问的用户IP地址

 %l 访问逻辑用户名,通常返回'-'

 %u 访问验证用户名,通常返回'-'

 %t 访问日时

 %r 访问的方式(post或者是get),访问的资源和使用的>

 %s 访问返回的>

 %b 访问资源返回的流量

 %T 访问所使用的时间

有了这些数据,我们可以根据时间段做以下的分析处理(使用jfreechart工具动态生成):

 独立IP数统计

 访问请求数统计

 访问资料文件数统计

 访问流量统计

 访问处理响应时间统计

 统计所有404错误页面

 统计所有500错误的页面

 统计访问最频繁页面

 统计访问处理时间最久页面

 统计并发访问频率最高的页面

分析工具包括两大部分,一个是后台解释程序,每天执行一次对后台日志数据进行解析后保存到数据库中。

第二个是显示程序,从数据库中查询数据并生成相应的图表信息。

我学的是struts2,没用过struts1,不过我猜应该是两个forEach的嵌套没有弄好,adminName在你这应该是product的一个属性吧,是不是该改成${productadminName}呢,我不确定是不是这么改,不过抛得异常不是有Unknown Source嘛,原因应该在这里。如果不是的话,你看看那hql查询返回值是怎么分布的,断点debug一下。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/12781109.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存