本文整理汇总了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;
}
示例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;
}
示例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());
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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());
}
示例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;
}
示例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());
}
示例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;
}
示例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);
}
}
}