【问题标题】:Select a substring between 2 substrings [duplicate]在2个子字符串之间选择一个子字符串[重复]
【发布时间】:2019-12-20 19:14:12
【问题描述】:

我需要选择字符串的某个部分,即两个子字符串之间。

一堆不同的regex 组合。我已经卡了两天了

\\srv00\DATA\Reports\2019-08-14 09_41_24<Text that can contain any character and needs to be found with regex>.txt<> 实际上不是文本的一部分)

(文本实际上不在括号内)

我正在使用https://regex101.com/ 来测试我的regex。 使用以下内容:

(?:[\s\S]*[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}_[0-9]{2}_[0-9]{2} )(.*)(?=\.txt)

我能够在小组赛中正确,但在全场比赛中没有,导致 .txt 前面的所有内容都被打印出来。

请注意,日期和时间前面的所有内容也可以是可变的。

我想只选择子字符串,但我在结果中得到了整个字符串。

【问题讨论】:

  • 正则表达式看起来在 regex101 上工作,对吗?当您使用其他编程语言的正则表达式时会出现问题吗?
  • 您使用什么语言?您的正则表达式对我来说看起来不错,如果您使用的是 Python,请尝试在结果上执行 matchgroup(1)
  • 我对正则表达式很陌生,我不知道组和匹配是如何工作的。现在想通了。

标签: regex


【解决方案1】:

您也可以使用txt2tre 仔细检查您的正则表达式,我发现此页面对于创建复杂的正则表达式很有帮助。

如果你得到了正确的组并且你使用 Python 的 re 模块,你可以在字符串 m 中调用匹配的组;例如

m.group(0) := complete string
m.group(1) := the first matched group etc.

【讨论】:

    猜你喜欢
    • 2013-12-31
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 2018-11-21
    相关资源
    最近更新 更多