从带有正则表达式的字符串中删除文本(&括号)

时间:2011-08-30 20:43:32

标签: regex

当你理解时很容易......不幸的是,我没有!如果你能引导我到答案,我将非常感谢你,谢谢。

我想使用正则表达式捕获字符串,但删除括号内的任何文本。 e.g。

这是一个典型的字符串...

<td class="rc_entry_alt" >Mark Anthony (IRE)</td>

我很容易捕捉到“马克安东尼(IRE)”。我正在使用......

/<td class="rc_entry(_alt)?" >.*<\/td>/

我想要删除“(IRE)”。请注意第一个括号之前的前一个空格。我也想删除它。此外,()之间的文字也会有所不同,例如美国,ITY,FR等应该看起来像......

Mark Anthony

我毫不怀疑这很简单,但却让我望而却步。谢谢你的时间:))

n.b。括号中的东西并不总是存在。有时我会用我提到的原始代码得到我想要的东西。

2 个答案:

答案 0 :(得分:1)

你的正则表达式会是这样的。真正的语法取决于您的编程语言/工具。

首先,您需要匹配<td ..>部分。然后你将所有内容都归咎于(。然后确保将括号中的所有内容与</td>匹配。

/<td[^>].*>\([^(]*\)(.*)</td>/

你应该阅读杰弗里弗里德的书:掌握正则表达式。

答案 1 :(得分:0)

好的,首先删除HTML,然后执行类似的操作以删除(...)部分:

\s+\(.*?\)

如果你知道(...)部分是字符串中的最后一部分(即它后面没有任何内容),你可以使用它来检查它是否也在最后:

\s+\(.*?\)$

只需使用正则表达式查找和替换函数,找到上面的表达式,并替换为空。