使用TRegEx从字符串中去除{...}或[...]

格洛格

我有以下函数,应删除字符串中所有出现的(...),[...]和{...}

function TCleanUp.DoStripBraces(const aInput: string): string; // works!
begin
  result := TRegEx.Replace(aInput, '\([^)]*\)', '');
end;

function TCleanUp.DoStripCurlyBraces(const aInput: string): string; // does not work
begin
  result := TRegEx.Replace(aInput, '\{[^\}]*}', '');
end;

function TCleanUp.DoStripSquareBrackets(const aInput: string): string; // does not work
begin
  result := TRegEx.Replace(aInput, '\[[^\]]*]', '');
end;

我正在用这些字符串测试功能

'foo (bar) baz (xyz)'
'foo [bar] baz [xyz]'
'foo {bar} baz {xyz}'

所有这些都应该返回以下字符串

'foo  baz '

当我在http://www.regexr.com/上使用相同的字符串和表达式时,它完全匹配出现的情况。

我也尝试过不使字符集中的括号/花括号转义,但这也不起作用。

如何使表达式起作用?

费德里科广场

您可以这样使用一个正则表达式:

[([{].*?[)}\]]

工作演示

另一方面,如果要使用3个分隔的正则表达式,可以使用:

\(.*?\)
\[.*?\]
\{.*?\}

将它们放在一起,您可以看到它们的匹配项:

正则表达式可视化

上面的这些正则表达式比以下内容更具可读性:

\([^)]*?\)     As you can see, this is error prone as you faced. 
\[[^\]]*?\]
\{[^}]*?\}

虽然,这种可读性的缺点对性能有一点影响。使用.*?比使用慢,[^...]*但是除非必须解析很长的字符串,否则您不会注意到它们的区别。

您可以从视觉上看到差异:

正则表达式可视化

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

before_save,去除字符串

来自分类Dev

如何在MySQL中从字符串中去除URL?

来自分类Dev

使用java.regex从字符串中去除字符

来自分类Dev

返回字符串的去除空格的函数

来自分类Dev

如何在Elixir中从字符串中去除逗号?

来自分类Dev

从F#中的字符串中去除字符

来自分类Dev

从字符串中去除后,一个逗号和空格,多数民众赞成

来自分类Dev

从字符串中去除空格和\ n

来自分类Dev

去除字符外的字符串部分

来自分类Dev

去除?和 使用替换在熊猫数据框列中的字符串中的符号

来自分类Dev

执行计算时从python中单个字符串的多个单独值中去除多余的0

来自分类Dev

如何在Python中使用内置字符串方法去除文本中的空格?

来自分类Dev

如何在使用Robot Framework时从字符串中修剪或去除空格

来自分类Dev

从一个或两个数字中去除一个字符串

来自分类Dev

使用正则表达式是否可以在字符串中去除X个以上的数字?

来自分类Dev

在Python中从字符串中去除2m个字符

来自分类Dev

如何从字符串中去除除反引号中包含的标签之外的所有HTML标签?

来自分类Dev

从字母数字字符串中去除十进制数和剩余的零

来自分类Dev

如何从字符串中去除非字母,空格和数字字符?

来自分类Dev

如何在MySQL中从字符串中去除URL?

来自分类Dev

如何使用JavaScript从id属性中去除非数字字符

来自分类Dev

从php中的字符串中去除逗号,空格,句号

来自分类Dev

如何使用R从不同文件中导出列表元素中去除噪声字符

来自分类Dev

从 Ruby 中的标头中去除字符

来自分类Dev

如何使用具有这种值格式的 php 去除标签字符串?

来自分类Dev

Python从字符串块中去除连字符

来自分类Dev

如何从python中的字符串列表中去除多个不需要的字符?

来自分类Dev

在javascript中从字符串中去除逗号和非数字字符

来自分类Dev

php 从字符串中去除 [[:char_class:]]

Related 相关文章

  1. 1

    before_save,去除字符串

  2. 2

    如何在MySQL中从字符串中去除URL?

  3. 3

    使用java.regex从字符串中去除字符

  4. 4

    返回字符串的去除空格的函数

  5. 5

    如何在Elixir中从字符串中去除逗号?

  6. 6

    从F#中的字符串中去除字符

  7. 7

    从字符串中去除后,一个逗号和空格,多数民众赞成

  8. 8

    从字符串中去除空格和\ n

  9. 9

    去除字符外的字符串部分

  10. 10

    去除?和 使用替换在熊猫数据框列中的字符串中的符号

  11. 11

    执行计算时从python中单个字符串的多个单独值中去除多余的0

  12. 12

    如何在Python中使用内置字符串方法去除文本中的空格?

  13. 13

    如何在使用Robot Framework时从字符串中修剪或去除空格

  14. 14

    从一个或两个数字中去除一个字符串

  15. 15

    使用正则表达式是否可以在字符串中去除X个以上的数字?

  16. 16

    在Python中从字符串中去除2m个字符

  17. 17

    如何从字符串中去除除反引号中包含的标签之外的所有HTML标签?

  18. 18

    从字母数字字符串中去除十进制数和剩余的零

  19. 19

    如何从字符串中去除非字母,空格和数字字符?

  20. 20

    如何在MySQL中从字符串中去除URL?

  21. 21

    如何使用JavaScript从id属性中去除非数字字符

  22. 22

    从php中的字符串中去除逗号,空格,句号

  23. 23

    如何使用R从不同文件中导出列表元素中去除噪声字符

  24. 24

    从 Ruby 中的标头中去除字符

  25. 25

    如何使用具有这种值格式的 php 去除标签字符串?

  26. 26

    Python从字符串块中去除连字符

  27. 27

    如何从python中的字符串列表中去除多个不需要的字符?

  28. 28

    在javascript中从字符串中去除逗号和非数字字符

  29. 29

    php 从字符串中去除 [[:char_class:]]

热门标签

归档