【问题标题】:Extracting a substring using a specific pattern使用特定模式提取子字符串
【发布时间】:2020-04-25 22:28:42
【问题描述】:

我需要提取一些我从另一个进程接收的数据。 接收到的内容在长度和格式上存在很大差异,但我需要的一条信息始终采用相同的格式。

示例 1:

This is the first example (with a lot of content that I don't need) but the important piece of info is this: (test1 / jibberish)

示例 2:

This is another example (test2 / something I'm not interested in) 

我感兴趣的唯一信息是一个始终具有相同模式的字符串

(信息/一些代码)

这只是我感兴趣的“信息”位。 那么有什么东西(比如正则表达式?)我可以用来提取一个临时字符串(甚至可能没有括号),然后我可以在使用 / 时执行一个子字符串?

所以输出变成了

info

谢谢

【问题讨论】:

  • 您回答了自己的问题:您可以使用正则表达式来做到这一点。所以请仔细阅读,那里有很多例子。
  • 阅读正则表达式......我没有 2 年......
  • @Cainnech 正则表达式并没有那么复杂,你不需要 2 年,对于你的例子,这样的事情就可以了:\(([\w\s']+) \/ ([\w\s']+)\)
  • 谢谢你。那么在上述情况下, w+ 意味着内容被忽略了吗?另外,我需要在开头添加 ^ 并在末尾添加 $ 吗?所以:\^((\w+) \/ (\w+))$ ?
  • 不,因为我们不想检查所有字符串,而只想找到您感兴趣的部分:parenthesis \(,后跟 any word character or space or quote [\w\s']+,然后是 space,然后是 slash ,然后又是同样的事情并关闭了parenthesis[\w\s']+ 周围的括号是指定要捕获的内容

标签: c# regex substring


【解决方案1】:

在记事本++中我会这样做 查找:-\((.+?)\/.+ 替换:- \1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-30
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多