【发布时间】: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']+周围的括号是指定要捕获的内容