2017-09-17 5 views
1

周りにスペースを入れずにカッコ内の文字列にマッチする:正規表現は、私がカッコ内の文字列を一致させるために、次の正規表現を使用してい

\((.*?)\) 

をしかし、これは、この一致します

(word) 

とあまりにもこの:

(word) 

最初の大文字と一致するように修正する必要があります。括弧内の単語は空白なしです。(word)

左括弧の後と閉じ括弧の前にスペースを許可しないように、事前

+0

何 '(WORD1 WORD2)'について、これを一致させる必要がありますか?それは許されるべきですか? '()'についてどうですか? – dasblinkenlight

+0

はい(ワード1の単語2)にあります。 '()'だけでいいです。 – user1991185

答えて

1

使用lookahead/lookbehind

ありがとう:

\((?!\s)[^()]+(?<!\s)\) 

(?!\s)(?<!\s)「/スペースが先行していないが続かない」を意味します。

中くらいの部分、[^()]+は、括弧内に1つ以上の文字が必要です。()が一致しないようにしてください。

\([^\s()](?:[^()]*[^\s()])?\) 

[^\s()]は、最初の文字が空白や括弧ではないことを保証します(と必須の少なくとも一つの文字を作る):あなたはこのパターンを使用することができます

Demo.

+0

javascriptがlookbehindをサポートしていないことに注意する価値はあります。したがって、環境に応じて、これは動作します。 –

2

(?: [^()]* [^\s()])?はオプションです。一致した場合、同じ文字クラスが最後の文字が空白でないことを保証します。

関連する問題