3

私の目標は、文字列を読み取り、括弧内のテキストを無視することです。

public static void main(String[] args) {
    Pattern checkRegex= Pattern.compile("([a-zA-Z]{3,30}\\s*){2}");
    
    Matcher regexMatcher=checkRegex.matcher("James Hunt(Skateboarder)");
    
    while(regexMatcher.find()){
    System.out.println(regexMatcher.group().trim());
}

現在の出力は次のとおりです。

ジェームズ・ハント

スケートボーダー

本質的に私が望むのは、出力が「James Hunt」だけになることです。このような状況で使用するのに適した正規表現パターンは何ですか?

4

3 に答える 3

3

これは、指定された文字列内のネストされていないすべての括弧に対して機能します。

String input = "James Hunt(Skateboarder)";
String output = input.replaceAll("\\([^)]*?\\)", "");
于 2013-03-03T00:54:54.720 に答える
3

Essentially what I want is for the output to be only "James Hunt". What is a suitable Regex pattern to use in this type of situation?

try regex: ^[^(]*

于 2013-03-03T00:57:41.247 に答える
0

正規表現を使用する必要がない場合は、1 回の単純な反復でデータを取得できます

String data="some (sentence (with) nested) paranhesis";
StringBuilder buffer=new StringBuilder();
int parenthesisCounter=0;
for (char c:data.toCharArray()){
    if (c=='(') parenthesisCounter++;
    if (c==')') parenthesisCounter--;
    if (c!=')' && c!='(' && parenthesisCounter==0)
        buffer.append(c);
}
System.out.println(buffer);

出力:

some  paranhesis
于 2013-03-03T01:03:32.843 に答える