【问题标题】:Get specific part of string with regular expression使用正则表达式获取字符串的特定部分
【发布时间】:2014-05-14 15:44:53
【问题描述】:

我有一个类似"blah blah blah blah @[Dave Battersby](Person:292) blah blibbidy blah"的字符串

我想去掉不可读的部分,所以只保留文本使用正则表达式。我试过这个正则表达式(?<=\[)(.*?)(?=\]) 但这只是给出了[]Dave Battersby 内的东西的集合@

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

谢谢

【问题讨论】:

  • 您是否尝试过将不需要的字符简单替换为空字符串?

标签: .net regex vb.net


【解决方案1】:

模式@[name](id info) 是否已修复尚不完全清楚,但如果是这样,以下应该可以工作:

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

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

【讨论】:

  • 谢谢,模式是固定的 - 除了 Person: - 这可以说其他的东西,如“团队”、“页面”
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 2021-12-10
    • 2021-09-27
    • 2014-01-20
    • 2023-01-17
    相关资源
    最近更新 更多