syslogmatch.java

来自「與 unix 上相似的syslog daemon, 沒有 log4j 複雜」· Java 代码 · 共 103 行

JAVA
103
字号
package com.ice.syslogd;import com.oroinc.text.regex.*;public classSyslogMatch	{	public static final String		RCS_ID = "$Id: SyslogMatch.java,v 1.2 1998/07/29 02:15:10 time Exp $";	public static final String		RCS_REV = "$Revision: 1.2 $";	public static final String		RCS_NAME = "$Name:  $";	private boolean			match;	private String			expression;	private Pattern			pattern;	private MatchResult		result;	public	SyslogMatch()		{		this.match = false;		this.pattern = null;		}	public void	compile( String expr )			throws MatchCompileException		{		Perl5Compiler compiler = new Perl5Compiler();		this.expression = expr;		try {			this.pattern = compiler.compile( expr );			}		catch( MalformedPatternException ex )			{			this.pattern = null;			throw new MatchCompileException( ex.getMessage() );			}		}	public boolean	matchMessage( String message )		{		if ( this.pattern == null )			{			this.match = false;			return false;			}		MatchResult		result = null;		Perl5Matcher	matcher = new Perl5Matcher();		PatternMatcherInput input =			new PatternMatcherInput( message );		this.match = matcher.contains( input, this.pattern );		if ( this.match )			{			this.result = matcher.getMatch();			}		return this.match;		}	public String	getExpression()		{		return this.expression;		}	public boolean	didMatch()		{		return this.match;		}	public String	getMatchSubExpr( int index )		{		return this.result.group( index );		}	public String[]	getMatchVariables()		{		int size = result.groups();		String[] vars = new String[ size ];		for( int i = 0 ; i < size ; i++ )			{			vars[ i ] = this.result.group( i );			}		return vars;		}	}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?