当前位置: 首页>>代码示例>>Java>>正文


Java Perl5Compiler类代码示例

本文整理汇总了Java中org.apache.oro.text.regex.Perl5Compiler的典型用法代码示例。如果您正苦于以下问题:Java Perl5Compiler类的具体用法?Java Perl5Compiler怎么用?Java Perl5Compiler使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


Perl5Compiler类属于org.apache.oro.text.regex包,在下文中一共展示了Perl5Compiler类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: convertStringToPattern

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
/**
 * 把字符串转成Pattern和UrlType
 * 
 * @param perl5RegExp
 * @return
 */
private URLPatternHolder convertStringToPattern(String line) {
    URLPatternHolder holder = new URLPatternHolder();
    Pattern compiledPattern;
    Perl5Compiler compiler = new Perl5Compiler();
    String perl5RegExp = line;
    try {
        compiledPattern = compiler.compile(perl5RegExp, Perl5Compiler.READ_ONLY_MASK);
        holder.setCompiledPattern(compiledPattern);
    } catch (MalformedPatternException mpe) {
        throw new IllegalArgumentException("Malformed regular expression: " + perl5RegExp);
    }

    if (logger.isDebugEnabled()) {
        logger.debug("Added regular expression: " + compiledPattern.getPattern().toString());
    }
    return holder;
}
 
开发者ID:luoyaogui,项目名称:otter-G,代码行数:24,代码来源:URLProtectedEditor.java

示例2: createOrGetPerl5CompiledPattern

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
/**
 * Compiles and caches a Perl5 regexp pattern for the given string pattern.
 * This would be of no benefits (and may bloat memory usage) if stringPattern is never the same.
 * @param stringPattern a Perl5 pattern string
 * @param caseSensitive case sensitive true/false
 * @return a <code>Pattern</code> instance for the given string pattern
 * @throws MalformedPatternException
 */

public static Pattern createOrGetPerl5CompiledPattern(String stringPattern, boolean caseSensitive) throws MalformedPatternException {
    Pattern pattern = compiledPerl5Patterns.get(stringPattern);
    if (pattern == null) {
        Perl5Compiler compiler = new Perl5Compiler();
        if (caseSensitive) {
            pattern = compiler.compile(stringPattern, Perl5Compiler.READ_ONLY_MASK); // READ_ONLY_MASK guarantees immutability
        } else {
            pattern = compiler.compile(stringPattern, Perl5Compiler.CASE_INSENSITIVE_MASK | Perl5Compiler.READ_ONLY_MASK);
        }
        pattern = compiledPerl5Patterns.putIfAbsentAndGet(stringPattern, pattern);
        if (Debug.verboseOn()) {
            Debug.logVerbose("Compiled and cached the pattern: '" + stringPattern, module);
        }
    }
    return pattern;
}
 
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:26,代码来源:PatternFactory.java

示例3: WildCardFilter

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
/**
 * @param wildcard
 * @throws MalformedPatternException
 */
public WildCardFilter(String wildcard,boolean ignoreCase) throws MalformedPatternException {
    this.wildcard=wildcard;
    this.ignoreCase=ignoreCase;
    StringBuffer sb = new StringBuffer(wildcard.length());
    int len=wildcard.length();
    
    for(int i=0;i<len;i++) {
        char c = wildcard.charAt(i);
        if(c == '*')sb.append(".*");
        else if(c == '?') sb.append('.');
        else if(specials.indexOf(c)!=-1)sb.append('\\').append(c);
        else sb.append(c);
    }
    pattern=new Perl5Compiler().compile(ignoreCase?sb.toString().toLowerCase():sb.toString());
}
 
开发者ID:lucee,项目名称:extension-mongodb,代码行数:20,代码来源:WildCardFilter.java

示例4: fetch

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
/**
 * 提取子串
 * @param src	输入字符串
 * @param regx	表达式
 * @return
 */
public List<List<String>> fetch(String src, String regx){
	List<List<String>> list = new ArrayList<List<String>>();
	try{
		Pattern pattern = patternCompiler.compile(regx, Perl5Compiler.CASE_INSENSITIVE_MASK);
		PatternMatcher matcher = new Perl5Matcher();
		PatternMatcherInput input = new PatternMatcherInput(src);
		while(matcher.matches(input, pattern)){
			MatchResult matchResult = matcher.getMatch();
			int groups = matchResult.groups();
			List<String> item = new ArrayList<String>();
			for(int i=0; i<=groups; i++){
				item.add(matchResult.group(i));
			}
			list.add(item);
		}
	}catch(Exception e){
		if(ConfigTable.isDebug()){
			e.printStackTrace();
		}
	}
	return list;
}
 
开发者ID:anylineorg,项目名称:anyline,代码行数:29,代码来源:RegularMatch.java

示例5: indexOf

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
/**
 * 字符串下标 regx在src中首次出现的位置
 * @param src   
 * @param regx  
 * @param idx   有效开始位置
 * @return
 * @throws Exception
 */
public static int indexOf(String src, String regx, int begin){
	int idx = -1;
	try{
		PatternCompiler patternCompiler = new Perl5Compiler();
		Pattern pattern = patternCompiler.compile(regx, Perl5Compiler.CASE_INSENSITIVE_MASK);
		PatternMatcher matcher = new Perl5Matcher();
		PatternMatcherInput input = new PatternMatcherInput(src);
		
		while(matcher.contains(input, pattern)){
			MatchResult matchResult = matcher.getMatch();
			int tmp = matchResult.beginOffset(0);
			if(tmp >= begin){//匹配位置从begin开始
				idx = tmp;
				break;
			}
		}
	}catch(Exception e){
		log.error("fetch(String,String):\n"+"src="+src+"\regx="+regx+"\n"+e);
		if(ConfigTable.isDebug()){
			e.printStackTrace();
		}
	}
	return idx;
}
 
开发者ID:anylineorg,项目名称:anyline,代码行数:33,代码来源:RegularUtil.java

示例6: fetch

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
/**
 * 提取子串
 * @param src	输入字符串
 * @param regx	表达式
 * @return
 */
public List<List<String>> fetch(String src, String regx){
	List<List<String>> list = new ArrayList<List<String>>();
	try{
		Pattern pattern = patternCompiler.compile(regx, Perl5Compiler.CASE_INSENSITIVE_MASK);
		PatternMatcher matcher = new Perl5Matcher();
		PatternMatcherInput input = new PatternMatcherInput(src);
		while(matcher.matchesPrefix(input, pattern)){
			MatchResult matchResult = matcher.getMatch();
			int groups = matchResult.groups();
			List<String> item = new ArrayList<String>();
			for(int i=0; i<=groups; i++){
				item.add(matchResult.group(i));
			}
			list.add(item);
		}
	}catch(Exception e){
		if(ConfigTable.isDebug()){
			e.printStackTrace();
		}
	}
	return list;
}
 
开发者ID:anylineorg,项目名称:anyline,代码行数:29,代码来源:RegularMatchPrefix.java

示例7: fetch

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
/**
 * 提取子串
 * @param src	输入字符串
 * @param regx	表达式
 * @return
 */
public List<List<String>> fetch(String src, String regx){
	List<List<String>> list = new ArrayList<List<String>>();
	try{
		Pattern pattern = patternCompiler.compile(regx, Perl5Compiler.CASE_INSENSITIVE_MASK);
		PatternMatcher matcher = new Perl5Matcher();
		PatternMatcherInput input = new PatternMatcherInput(src);
		while(matcher.contains(input, pattern)){
			MatchResult matchResult = matcher.getMatch();
			int groups = matchResult.groups();
			List<String> item = new ArrayList<String>();
			for(int i=0; i<groups; i++){
				item.add(matchResult.group(i));
			}
			list.add(item);
		}
	}catch(Exception e){
		log.error("fetch(String,String):\n"+"src="+src+"\regx="+regx+"\n"+e);
		if(ConfigTable.isDebug()){
			e.printStackTrace();
		}
	}
	return list;
}
 
开发者ID:anylineorg,项目名称:anyline,代码行数:30,代码来源:RegularContain.java

示例8: fetch

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
/**
 * 提取子串
 * @param src	输入字符串
 * @param regx	表达式
 * @return
 */
public List<List<String>> fetch(String src, String regx){
	List<List<String>> list = new ArrayList<List<String>>();
	try{
		Pattern pattern = patternCompiler.compile(regx, Perl5Compiler.CASE_INSENSITIVE_MASK);
		PatternMatcher matcher = new Perl5Matcher();
		PatternMatcherInput input = new PatternMatcherInput(src);
		while(matcher.contains(input, pattern)){
			MatchResult matchResult = matcher.getMatch();
			int groups = matchResult.groups();
			List<String> item = new ArrayList<String>();
			for(int i=0; i<groups; i++){
				item.add(matchResult.group(i));
			}
			list.add(item);
		}
	}catch(Exception e){
		log.error("fetch(String,String):\n"+"src="+src+"\regx="+regx+"\n"+e);
	}
	return list;
}
 
开发者ID:anylineorg,项目名称:anyline,代码行数:27,代码来源:RegxpContain.java

示例9: getTaskPattern

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
@Nullable
private Pattern getTaskPattern(String pattern) {
  if (!Comparing.strEqual(pattern, myPattern)) {
    myCompiledPattern = null;
    myPattern = pattern;
  }
  if (myCompiledPattern == null) {
    final String regex = "^.*" + NameUtil.buildRegexp(pattern, 0, true, true);

    final Perl5Compiler compiler = new Perl5Compiler();
    try {
      myCompiledPattern = compiler.compile(regex);
    }
    catch (MalformedPatternException ignored) {
    }
  }
  return myCompiledPattern;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:19,代码来源:ListChooseByNameModel.java

示例10: matchesPatterns

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
private boolean matchesPatterns(String url, CollectionProperty patterns)
{
    for (JMeterProperty jMeterProperty : patterns)
    {
        String item = jMeterProperty.getStringValue();
        try
        {
            Pattern pattern = JMeterUtils.getPatternCache().getPattern(item,
                    Perl5Compiler.READ_ONLY_MASK | Perl5Compiler.SINGLELINE_MASK);
            if (JMeterUtils.getMatcher().matches(url, pattern))
            {
                return true;
            }
        }
        catch (MalformedCachePatternException e)
        {
            LOG.warn("Skipped invalid pattern: " + item, e);
        }
    }
    return false;
}
 
开发者ID:d0k1,项目名称:jsflight,代码行数:22,代码来源:JMeterProxyControl.java

示例11: WildCardFilter

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
/**
 * @param wildcard
 * @throws MalformedPatternException
 */
public WildCardFilter(String wildcard,boolean ignoreCase) throws MalformedPatternException {
    this.wildcard=wildcard;
    StringBuilder sb = new StringBuilder(wildcard.length());
    int len=wildcard.length();
    
    for(int i=0;i<len;i++) {
        char c = wildcard.charAt(i);
        if(c == '*')sb.append(".*");
        else if(c == '?') sb.append('.');
        else if(specials.indexOf(c)!=-1)sb.append('\\').append(c);
        else sb.append(c);
    }
    
    this.ignoreCase=ignoreCase;
    pattern=new Perl5Compiler().compile(ignoreCase?StringUtil.toLowerCase(sb.toString()):sb.toString());
}
 
开发者ID:lucee,项目名称:Lucee4,代码行数:21,代码来源:WildCardFilter.java

示例12: indexOf

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
/**
 * return index of the first occurence of the pattern in input text
 * @param strPattern pattern to search
 * @param strInput text to search pattern
 * @param offset 
 * @param caseSensitive
 * @return position of the first occurence
 * @throws MalformedPatternException
*/
public static int indexOf(String strPattern, String strInput, int offset, boolean caseSensitive) throws MalformedPatternException {
       //Perl5Compiler compiler = new Perl5Compiler();
       PatternMatcherInput input = new PatternMatcherInput(strInput);
       Perl5Matcher matcher = new Perl5Matcher();
       
       int compileOptions=caseSensitive ? 0 : Perl5Compiler.CASE_INSENSITIVE_MASK;
       compileOptions+=Perl5Compiler.SINGLELINE_MASK;
       if(offset < 1) offset = 1;
       
       Pattern pattern = getPattern(strPattern,compileOptions);
       //Pattern pattern = compiler.compile(strPattern,compileOptions);
       

       if(offset <= strInput.length()) input.setCurrentOffset(offset - 1);
       
       if(offset <= strInput.length() && matcher.contains(input, pattern)) {
           return matcher.getMatch().beginOffset(0) + 1; 
       }
       return 0;
   }
 
开发者ID:lucee,项目名称:Lucee4,代码行数:30,代码来源:Perl5Util.java

示例13: WildCardFilter

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
/**
 * @param wildcard
 * @throws MalformedPatternException
 */
public WildCardFilter(String wildcard,boolean ignoreCase) throws MalformedPatternException {
    this.wildcard=wildcard;
    this.ignoreCase=ignoreCase;
    StringBuilder sb = new StringBuilder(wildcard.length());
    int len=wildcard.length();
    
    for(int i=0;i<len;i++) {
        char c = wildcard.charAt(i);
        if(c == '*')sb.append(".*");
        else if(c == '?') sb.append('.');
        else if(specials.indexOf(c)!=-1)sb.append('\\').append(c);
        else sb.append(c);
    }
    pattern=new Perl5Compiler().compile(ignoreCase?sb.toString().toLowerCase():sb.toString());
}
 
开发者ID:lucee,项目名称:Lucee4,代码行数:20,代码来源:WildCardFilter.java

示例14: isValidSettings

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
@Override
public List<ErrorData> isValidSettings(Map<Integer, Object> settings) {
	List<ErrorData> errorDataList = new ArrayList<ErrorData>();
	TTextBoxSettingsBean textBoxSettingsBean = (TTextBoxSettingsBean)settings.get(mapParameterCode);
	//textBoxSettingsBean can be null when no settings was set (especially by system fields)
	if (textBoxSettingsBean!=null) {
		String patternString = textBoxSettingsBean.getDefaultText();
		Perl5Compiler pc = new Perl5Compiler();
		try {
			/*Perl5Pattern pattern=(Perl5Pattern)*/pc.compile(patternString,Perl5Compiler.CASE_INSENSITIVE_MASK |Perl5Compiler.SINGLELINE_MASK);
		} catch (MalformedPatternException e) {
			LOGGER.error("Malformed Email Domain Pattern " + patternString);
			errorDataList.add(new ErrorData("admin.user.profile.err.emailAddress.format"));
		}
	}
	return errorDataList;
}
 
开发者ID:trackplus,项目名称:Genji,代码行数:18,代码来源:EmaiAddressDT.java

示例15: validateRegEx

import org.apache.oro.text.regex.Perl5Compiler; //导入依赖的package包/类
/**
 * Helper method to validate the specified string does not contain anything other than
 * that specified by the regular expression
 * @param aErrors The errors object to populate
 * @param aValue the string to check
 * @param aRegEx the Perl based regular expression to check the value against
 * @param aErrorCode the error code for getting the i8n failure message
 * @param aValues the list of values to replace in the i8n messages
 * @param aFailureMessage the default error message
 */
public static void validateRegEx(Errors aErrors, String aValue, String aRegEx, String aErrorCode, Object[] aValues, String aFailureMessage) {
    if (aValue != null && aRegEx != null && !aRegEx.equals("") && !aValue.trim().equals("")) {
        Perl5Compiler ptrnCompiler = new Perl5Compiler();
        Perl5Matcher matcher = new Perl5Matcher();
        try {
            Perl5Pattern aCharPattern = (Perl5Pattern) ptrnCompiler.compile(aRegEx);
                            
            if (!matcher.contains(aValue, aCharPattern)) {
                aErrors.reject(aErrorCode, aValues, aFailureMessage);               
                return;
            }
        }
        catch (MalformedPatternException e) {
            LogFactory.getLog(ValidatorUtil.class).fatal("Perl pattern malformed: pattern used was "+aRegEx +" : "+ e.getMessage(), e);
        }           
    }
}
 
开发者ID:DIA-NZ,项目名称:webcurator,代码行数:28,代码来源:ValidatorUtil.java


注:本文中的org.apache.oro.text.regex.Perl5Compiler类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。