我正在尝试删除除少数之外的所有特殊字符的字符串,并删除括号之间的所有内容(正方形或任何其他字符,包括括号!)。我目前的正则表达式是:
^[a-zA-Z0-9äöüÄÖÜ;@.]*$
\\[.+\\]
\\<.+\\>
\\s+
删除与上述其中一个匹配的所有序列 它适用于例如:
Foo Bar[Foo.Bar@google.com]
减少它FooBar
但不是例如:
Foo
foo@bar.com
完全删除它们
答案 0 :(得分:1)
要删除括号之外的任何括号,可以使用以下正则表达式并将其替换为空字符串:
/\[[^\]]*\]/
要删除特殊字符,您可以使用下面的字符。它会选择除括号内的所有内容。所以你可以再次用空字符串替换它。
/[^a-zA-Z0-9äöüÄÖÜ;@]/
您可以按顺序使用它们,也可以构建一个更大的。
在Ruby中,我有以下测试:
irb(main):001:0> s = "Foo Bar[Foo.Bar@google.com]"
=> "Foo Bar[Foo.Bar@google.com]"
irb(main):005:0* s.gsub(/\[[^\]]*\]|[^a-zA-Z0-9äöüÄÖÜ;@]/, "")
=> "FooBar"
请注意,空间已消失。
答案 1 :(得分:1)
更新:根据OP的编辑更新正则表达式。
您可以使用以下正则表达式并将匹配替换为空字符串。
\[.*?\]|<.*?>|\s|[^a-zA-Z0-9äöüÄÖÜ;@.]