70 Stimmen

Text zwischen zwei runden Klammern abrufen

Wie kann ich das Wort abrufen my zwischen den beiden runden Klammern des folgenden Satzes mit Hilfe einer Regex in JavaScript?

"Dies ist (mein) einfacher Text"

134voto

Michael Krelin - hacker Punkte 130575
console.log(
  "This is (my) simple text".match(/\(([^)]+)\)/)[1]
);

\( als öffnende Klammer, ( - Beginn des Unterausdrucks, [^)]+ - ein oder mehrere Male etwas anderes als schließende Klammern (Sie sollten vielleicht die + con * ), ) - Ende des Unterausdrucks, \) - Klammer zu. Die match() gibt ein Array zurück ["(my)","my"] aus dem das zweite Element extrahiert wird.

21voto

j08691 Punkte 197539
var txt = "This is (my) simple text";
re = /\((.*)\)/;
console.log(txt.match(re)[1]);

jsFiddle-Beispiel

17voto

SexyBeast Punkte 7233

Sie können auch eine Nicht-Regex-Methode ausprobieren (wenn es mehrere solcher Klammern gibt, ist natürlich eine Schleife oder ein Regex erforderlich)

init = txt.indexOf('(');
fin = txt.indexOf(')');
console.log(txt.substr(init+1,fin-init-1))

9voto

Yu Mai Lin Punkte 91

Für alle, die mehrere Texte in mehreren Klammern zurückgeben möchten

var testString = "(Charles) de (Gaulle), (Paris) [CDG]"
var reBrackets = /\((.*?)\)/g;
var listOfText = [];
var found;
while(found = reBrackets.exec(testString)) {
  listOfText.push(found[1]);
};

8voto

Ryszard Czech Punkte 17766

Verwenden Sie diese Option, um den Text zwischen den engsten ( y ) :

const string = "This is (my) (simple (text)"
console.log( string.match(/\(([^()]*)\)/)[1] )
console.log( string.match(/\(([^()]*)\)/g).map(function($0) { return $0.substring(1,$0.length-1) }) )

Ergebnisse : my y ["my","text"] .

ERLÄUTERUNG

--------------------------------------------------------------------------------
  \(                       '('
--------------------------------------------------------------------------------
  (                        group and capture to \1:
--------------------------------------------------------------------------------
    [^()]*                   any character except: '(', ')' (0 or
                             more times (matching the most amount
                             possible))
--------------------------------------------------------------------------------
  )                        end of \1
--------------------------------------------------------------------------------
  \)                       ')'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X