當前位置: 首頁>>代碼示例>>Java>>正文


Java Pattern.compile方法代碼示例

本文整理匯總了Java中java.util.regex.Pattern.compile方法的典型用法代碼示例。如果您正苦於以下問題:Java Pattern.compile方法的具體用法?Java Pattern.compile怎麽用?Java Pattern.compile使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在java.util.regex.Pattern的用法示例。


在下文中一共展示了Pattern.compile方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: replaceParameter

import java.util.regex.Pattern; //導入方法依賴的package包/類
/**
 * 替換url中參數的值。
 */
public static String replaceParameter(String query, String key, String value) {
    if (query == null || query.length() == 0) {
        return key + "=" + value;
    }
    if (query.indexOf(key + "=") == -1) {
    	return query + "&" + key + "=" + value;
    }
    Pattern pattern = REPLACE_PARAMETER_PATTERNS.get(key);
    if (pattern == null) {
    	pattern = Pattern.compile(key.replaceAll("([^(_0-9A-Za-z)])", "\\\\$0") + "=[^&]+");
    }
    Matcher matcher = pattern.matcher(query);
    StringBuffer sb = new StringBuffer();
    while (matcher.find()) {
        matcher.appendReplacement(sb, (key + "=" + value).replace("$", "\\$"));
    }
    matcher.appendTail(sb);
    return sb.toString();
}
 
開發者ID:zhuxiaolei,項目名稱:dubbo2,代碼行數:23,代碼來源:ParseUtils.java

示例2: denomMatchers

import java.util.regex.Pattern; //導入方法依賴的package包/類
ScaleMatcher[] denomMatchers() {
    ScaleMatcher[] result = denoms;
    if (result == null) { synchronized(this) {
        result = denoms;
        if (result == null) {
            if (! coinSymbol().matches(ci)) ci = ci.replaceFirst("\\(", "(" + coinSymbol() + "|");
            if (! coinCode().matches(ci))  {
                ci = ci.replaceFirst("\\)", "|" + coinCode() + ")");
            }
            coinPattern = Pattern.compile(ci + "?");
            result = denoms = new ScaleMatcher[]{
                new ScaleMatcher(Pattern.compile("¢" + ci + "?|c" + ci), 2), // centi 
                new ScaleMatcher(Pattern.compile("₥" + ci + "?|m" + ci), MILLICOIN_SCALE),
                new ScaleMatcher(Pattern.compile("([µu]" + ci + ")"),    MICROCOIN_SCALE),
                new ScaleMatcher(Pattern.compile("(da" + ci + ")"),     -1), // deka
                new ScaleMatcher(Pattern.compile("(h" + ci + ")"),      -2), // hekto
                new ScaleMatcher(Pattern.compile("(k" + ci + ")"),      -3), // kilo
                new ScaleMatcher(Pattern.compile("(M" + ci + ")"),      -6)  // mega
            };
        }
    }}
    return result;
}
 
開發者ID:guodroid,項目名稱:okwallet,代碼行數:24,代碼來源:BtcFormat.java

示例3: extractEscapedComments

import java.util.regex.Pattern; //導入方法依賴的package包/類
/**
 * Returns a list which contains comments of the string entry in the constant pool
 * and the appropriate UTF-8 value.
 *
 * @return a list
 */
private List<String> extractEscapedComments(String output) {
    List<String> result = new ArrayList<>();
    Pattern stringPattern = Pattern.compile(" +#\\d+ = String +#(\\d+) +// +(.*)");
    int index = -1;
    List<String> cp = extractConstantPool(output);
    for (String c : cp) {
        Matcher matcher = stringPattern.matcher(c);
        if (matcher.matches()) {
            index = Integer.parseInt(matcher.group(1)) - 1;
            result.add(matcher.group(2));
            // only one String entry
            break;
        }
    }
    check(index == -1, "Escaped string is not found in constant pool");
    result.add(cp.get(index).replaceAll(".* +", "")); // remove #16 = Utf8
    return result;
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:25,代碼來源:T8038414.java

示例4: compareBranches

import java.util.regex.Pattern; //導入方法依賴的package包/類
protected int compareBranches() {
	String val1 = ((StringNode) left).getValue();
	String val2 = ((StringNode) right).getValue();

	int val2Len = val2.length();
	if (val2Len > 1 && val2.charAt(0) == '/' && val2.charAt(val2Len - 1) == '/') {
		// Treat as a regular expression
		String expr = val2.substring(1, val2Len - 1);
		try {
			Pattern pattern = Pattern.compile(expr);
			// Regular expressions will only ever be used with EqualNode
			// so return zero for equal and non-zero for not equal
			if (pattern.matcher(val1).find()) {
				return 0;
			} else {
				return -1;
			}
		} catch (PatternSyntaxException pse) {
			ssiMediator.log("Invalid expression: " + expr, pse);
			return 0;
		}
	}
	return val1.compareTo(val2);
}
 
開發者ID:how2j,項目名稱:lazycat,代碼行數:25,代碼來源:ExpressionParseTree.java

示例5: getNameSpace

import java.util.regex.Pattern; //導入方法依賴的package包/類
/**
 * UserDataの名前空間を取得する.
 * @param entityType エンティティタイプ名
 * @param col コレクション名
 * @return UserDataの名前空間
 */
protected String getNameSpace(String entityType, String col) {
    // NameSpace取得のためにメタデータを取得する
    TResponse res = Http.request("box/$metadata-$metadata-get.txt")
            .with("path", "\\$metadata")
            .with("col", col)
            .with("accept", "application/xml")
            .with("token", PersoniumUnitConfig.getMasterToken())
            .returns()
            .statusCode(HttpStatus.SC_OK)
            .debug();
    Pattern pattern = Pattern.compile("Namespace=\"([^\"]+)\">");
    Matcher matcher = pattern.matcher(res.getBody());
    matcher.find();
    return matcher.group(1) + "." + entityType;
}
 
開發者ID:personium,項目名稱:personium-core,代碼行數:22,代碼來源:AbstractUserDataTest.java

示例6: Finder

import java.util.regex.Pattern; //導入方法依賴的package包/類
/**
 * Constructor for Finder.
 */
public Finder(
    HTMLEditor theEditor,
    String find,
    boolean wholeWord,
    boolean matchCase,
    boolean regexp,
    String replace) {
    super();
    editor = theEditor;
    dispText = find;
    int flags = Pattern.DOTALL;
    if (!matchCase)
        flags = flags + Pattern.CASE_INSENSITIVE + Pattern.UNICODE_CASE;
    _find = find;
    if (!regexp)
        _find = "\\Q" + _find + "\\E";
    if (wholeWord)
        _find = "[\\s\\p{Punct}]" + _find + "[\\s\\p{Punct}]";
    try {
        pattern = Pattern.compile(_find, flags);
    }
    catch (Exception ex) {
        ex.printStackTrace();
        pattern = null;
    }
    _replace = replace;
}
 
開發者ID:ser316asu,項目名稱:SER316-Ingolstadt,代碼行數:31,代碼來源:Finder.java

示例7: parseSubjectPermissions

import java.util.regex.Pattern; //導入方法依賴的package包/類
private Map<Long, Set<String>> parseSubjectPermissions(Properties properties, long subjectID) {
  Map<Long, Set<String>> permissions = new HashMap<>();

  Pattern permissionPattern = Pattern.compile(SUBJECT_PERMISSION_KEY.replace("{id}", String.valueOf(subjectID)));
  for (String key : properties.stringPropertyNames()) {
    Matcher matcher = permissionPattern.matcher(key);
    if (!matcher.matches()) continue;
    // Extract organizationID from key and parse function (group) names.
    permissions.put(Long.parseUnsignedLong(matcher.group(1)), parseStringMembers(properties, key));
  }

  return permissions;
}
 
開發者ID:mnemonic-no,項目名稱:act-platform,代碼行數:14,代碼來源:PropertiesFileParser.java

示例8: isValid

import java.util.regex.Pattern; //導入方法依賴的package包/類
@Override
public boolean isValid(final Object value, ConstraintValidatorContext context) {
    if (value == null || "".equals(value)) {
        return true;
    } else if (!StringUtil.isEmpty(validateRegexp.regexp())) {
        Pattern pattern = Pattern.compile(validateRegexp.regexp());
        Matcher matcher = pattern.matcher(value.toString().replaceAll("/", ""));
        return matcher.matches();
    }
    return false;
}
 
開發者ID:DomKing,項目名稱:springbootWeb,代碼行數:12,代碼來源:ValidateRegexpValidator.java

示例9: main

import java.util.regex.Pattern; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException{
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    StringBuilder string = new StringBuilder();
    string.append(reader.readLine());
    String regex = "(?<num>(\\d+)|^)(?<op>[^0-9]+|$)";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(string);
    Double result = 0d;
    boolean plus = true;
    while(matcher.find()){
        /*System.out.println("full match " + matcher.group(0));
        System.out.println("num is " + matcher.group("num"));
        System.out.println("operator is " + (matcher.group("op").length() % 2 == 0 ? "+" : "-"));*/
        Double num = 0d;
        if(!matcher.group("num").isEmpty()){
            num = Double.parseDouble(matcher.group("num"));
        }
        if(plus){
            result += num;
        } else {
            result -= num;
        }
        plus = matcher.group("op").length() % 2 == 0;
    }
    DecimalFormat myFormat = new DecimalFormat("0.#######");
    System.out.println(myFormat.format(result));
}
 
開發者ID:kostovhg,項目名稱:SoftUni,代碼行數:28,代碼來源:p02_LetterExpression.java

示例10: globItem

import java.util.regex.Pattern; //導入方法依賴的package包/類
private Set<Index> globItem(String item, Set<Index> full)
{
    Set<Index> ret = new HashSet<Index>();
    Pattern glob = Pattern.compile('^' + item.trim().replace("*", ".*") + '$');
    for (Index idx : full) {
        if (glob.matcher(idx.getCode()).find())
            ret.add(idx);
    }
    return ret;
}
 
開發者ID:drytoastman,項目名稱:scorekeeperfrontend,代碼行數:11,代碼來源:ClassData.java

示例11: match

import java.util.regex.Pattern; //導入方法依賴的package包/類
/**
 * <p>正則提取匹配到的內容</p>
 * <p>例如:</p>
 * </br>
 * author : Crab2Died</br>
 * date   : 2017年06月02日  15:49:51</br>
 *
 * @param pattern 匹配目標內容
 * @param reg     正則表達式
 * @param group   提取內容索引
 * @return 提取內容集合
 * @throws {@link RuntimeException}
 */
static
public List<String> match(String pattern, String reg, int group)
        throws RuntimeException {

    List<String> matchGroups = new ArrayList<>();
    Pattern compile = Pattern.compile(reg);
    Matcher matcher = compile.matcher(pattern);
    if (group > matcher.groupCount() || group < 0)
        throw new RuntimeException("Illegal match group :" + group);
    while (matcher.find()) {
        matchGroups.add(matcher.group(group));
    }
    return matchGroups;
}
 
開發者ID:zhangbiy,項目名稱:exportExcel,代碼行數:28,代碼來源:RegularUtils.java

示例12: fiterHtmlTag

import java.util.regex.Pattern; //導入方法依賴的package包/類
/**
 * 基本功能:過濾指定標簽
 *
 * @param str
 * @param tag 指定標簽
 * @return String
 */
public static String fiterHtmlTag(String str, String tag) {
    String regxp = "<\\s*" + tag + "\\s+([^>]*)\\s*>";
    Pattern pattern = Pattern.compile(regxp);
    Matcher matcher = pattern.matcher(str);
    StringBuffer sb = new StringBuffer();
    boolean result1 = matcher.find();
    while (result1) {
        matcher.appendReplacement(sb, "");
        result1 = matcher.find();
    }
    matcher.appendTail(sb);
    return sb.toString();
}
 
開發者ID:hsj-xiaokang,項目名稱:OSchina_resources_android,代碼行數:21,代碼來源:HTMLUtil.java

示例13: test26

import java.util.regex.Pattern; //導入方法依賴的package包/類
@Test(timeout = 4000)
public void test26() throws Throwable {
  Configuration configuration0 = new Configuration();
  Pattern pattern0 = Pattern.compile("7e:P");
  configuration0.setAllowPartitionNameFilter(pattern0);
  Pattern pattern1 = configuration0.getAllowPartitionNameFilter();
  assertEquals(0, pattern1.flags());
}
 
開發者ID:aguther,項目名稱:dds-examples,代碼行數:9,代碼來源:ConfigurationTest.java

示例14: createClassGlobPattern

import java.util.regex.Pattern; //導入方法依賴的package包/類
private static Pattern createClassGlobPattern(String pattern) {
    if (pattern.length() == 0) {
        return null;
    } else if (pattern.contains(".")) {
        return Pattern.compile(createGlobString(pattern));
    } else {
        return Pattern.compile("([^\\.\\$]*[\\.\\$])*" + createGlobString(pattern));
    }
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:10,代碼來源:MethodFilter.java

示例15: parse

import java.util.regex.Pattern; //導入方法依賴的package包/類
public BasicDBObject parse(IRule rule, JsonRuleParser parser) {
    BasicDBObject operate = new BasicDBObject("$regex", Pattern.compile("(?<!" + rule.getValue() + ")$"));
    return new BasicDBObject(rule.getField(), operate);
}
 
開發者ID:itfsw,項目名稱:QueryBuilder,代碼行數:5,代碼來源:NotEndsWithRuleParser.java


注:本文中的java.util.regex.Pattern.compile方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。