Ich bin über das folgende Regex-Problem ratlos.

Ich versuche, einzelne Wörter in eckigen Klammern ohne Leerzeichen zu finden. So was:

[singleWord]

Ich möchte solche Sätze nicht finden

[a series of words]

Im Moment benutze ich diesen regulären Ausdruck:

/\[(.*?)\]/g

Es werden Wörter und gefunden. Kann jemand vorschlagen, wie man es so ändert, dass es nur Wörter in eckigen Klammern ohne Leerzeichen findet?

Vielen Dank!!

1
d13 21 Nov. 2013 im 22:12

3 Antworten

Beste Antwort

Versuchen Sie, .*? in Ihrer Regex durch \S* zu ersetzen. . stimmt mit jedem Zeichen einschließlich Leerzeichen überein, während \S nur mit Nicht-Leerzeichen übereinstimmt

/\[(\S*)\]/g
2
jkshah 21 Nov. 2013 im 18:20

I'm trying to find single words surrounded by square brackets without spaces.

Sie können diesen regulären Ausdruck verwenden:

/\[([^\s\]]*)\]/g
0
anubhava 21 Nov. 2013 im 18:13

Ihr aktueller Regex erlaubt alles. Du willst nur Briefe.

/\[([a-z])\]/gi
0
Mathletics 21 Nov. 2013 im 18:13