使用正则表达式获取字符串的特定部分

时间:2014-05-14 15:44:53

标签: .net regex vb.net

我有一个像"blah blah blah blah @[Dave Battersby](Person:292) blah blibbidy blah"

这样的字符串

我想删除不可读的部分,因此文本仍然使用正则表达式。我试过这个正则表达式(?<=\[)(.*?)(?=\]),但这只是给出了[]Dave Battersby

内部事物的集合。

我需要的是返回字符串"blah blah blah blah Dave Battersby blah blibbidy blah"

由于

2 个答案:

答案 0 :(得分:2)

不完全清楚模式@[name](id info)是否已修复,但如果是,则以下内容应该有效:

Dim input = "blah blah blah blah @[Dave Battersby](Person:292) blah blibbidy blah"
Dim output = Regex.Replace(input, "@\[(.*?)\]\(.*?\)", "$1")

这将搜索完整模式,捕获名称部分,并仅使用名称替换匹配的文本。

答案 1 :(得分:1)

假设“blah blah blah”文本中没有方括号或括号,以下内容应该有效:

string myStr = "blah blah blah blah @[Dave Battersby](Person:292) blah blibbidy blah";
Regex.Replace(myStr, @"@\[(.*)\].*\)", "$1");
相关问题