正则表达式删除括号之间的字符串

时间:2017-06-01 09:05:18

标签: regex

  1. 我的字符串是这样的:姓名(已关闭)
  2. 我的字符串是这样的:姓名(CLOSED 0FF)
  3. 我的字符串是这样的:名字(已关闭)
  4. 我的字符串是这样的:姓名(DEC'D)
  5. 我想删除括号内的括号和字符串,仅获取:名称

    我正在使用此网址http://regexr.com/,我写了这样的regx :( [()] CLOSED)

    但是,最后一个括号未被选中。我做错了什么?

5 个答案:

答案 0 :(得分:1)

不知道为什么Estebans的答案对你不起作用,但至少应该这样:

替换

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

没有任何东西(空字符串)。

See it here at regex101(似乎regexr不保存替换字符串,所以我改用了regex101)。

答案 1 :(得分:0)

您可以使用此正则表达式:([\s]*[(][^)]*[)])

这将匹配(跟随任何非))

字符的空格字符。

如果您想要的是CLOSED文字,请使用:([\s]*[(]CLOSED[)])

请参阅http://regexr.com/3g2sl

答案 2 :(得分:0)

您可以尝试这一个([()]CLOSED.)

答案 3 :(得分:0)

试试这个([(]CLOSED[)]) 你忘了添加右括号

答案 4 :(得分:0)

删除字符串末尾的括号:

\s*\([^()]*\)$

regex proof

说明

--------------------------------------------------------------------------------
  \s*                      whitespace (\n, \r, \t, \f, and " ") (0 or
                           more times (matching the most amount
                           possible))
--------------------------------------------------------------------------------
  \(                       '('
--------------------------------------------------------------------------------
  [^()]*                   any character except: '(', ')' (0 or more
                           times (matching the most amount possible))
--------------------------------------------------------------------------------
  \)                       ')'
--------------------------------------------------------------------------------
  $                        before an optional \n, and the end of the
                           string