使用正则表达式从字符串中获取子字符串

Posted

技术标签:

【中文标题】使用正则表达式从字符串中获取子字符串【英文标题】:Get substrings from string using regular expression 【发布时间】:2019-05-02 16:19:27 【问题描述】:

我正在尝试使用 RegEx 从一个大字符串中获取子字符串。 子串的格式如下:

以数字 00-99 开头,后跟等号 =。 可能包含至少一个字符。任何字符。 以下划线“_”结尾。

示例子字符串:

01=#010.0000#001.0000#+10.0#AA_
02=#020.0000#002.0000#+20.0#BB_

完整字符串示例:

01=#010.0000#001.0000#+10.0#AA_02=#020.0000#002.0000#+20.0#BB_

我尝试了这个表达式,但结果是我得到了完整的字符串。

^\d2=.+_$

我错过了一些东西。有什么帮助吗?

【问题讨论】:

如果你想要一个字符串的一部分,那么你首先需要删除锚^$,因为这将始终匹配整个字符串或根本不匹配。 【参考方案1】:

你可以使用

\d2=.*?_(?=\d2=|$)

见regex demo

您也可能在匹配之前不需要数字,(?<!\d) 否定后向:

(?<!\d)\d2=.*?_(?=\d2=|$)

\d2=.*?_(?=\d2=|$) 模式匹配 2 个数字,=,然后是除换行符之外的任何 0+ 字符,尽可能少,直到第一个有两个数字的 _ 和它之后的 =或在字符串的末尾。

【讨论】:

请注意,如果有更具体的要求,您可能希望使您的模式更详细。见\d2=(?:#[-+]?\d+\.\d+(?:_[-+]?\d+\.\d+)*)+_[a-zA-Z]2_demo。

以上是关于使用正则表达式从字符串中获取子字符串的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 Python / pandas 中使用正则表达式获取子字符串

Python正则表达式获取子字符串[关闭]

使用正则表达式从 mysql 列中提取子字符串

如何使用正则表达式或子字符串从字符串中提取文本?

使用正则表达式从 Ruby 中的字符串中提取子字符串

使用正则表达式从句子中的方括号中提取剩余的子字符串