[英]regex to extract all digits from a string (not necessarily consecutive)
[英]Extract all text after two not necessarily consecutive words
我有一个像
deleted - the status was being deleted and got it back with it.
我想使用正则表达式。 这里的固定元素是单词status
和deleted
。 它们之间可以是不同的文本,我需要忽略它。
现在我的正则表达式是(?<=status).*
这需要“状态”之后的所有内容,但我需要忽略从“状态”到“已删除”的所有内容并保留其余部分。
例如输入:
deleted - the status was being deleted and got it back with it.
期望的输出:
and got it back with it.
您可以使用
status.*?deleted\s+(.*)
请参阅此正则表达式演示。 您需要访问 Group 1 值才能获得必要的结果。
或者,如果您的环境中有无限宽度的后视模式支持,请使用
(?<=status.*?deleted\s+).*
请参阅此正则表达式演示。
注意:如果deleted
后的空格是可选的,请使用\\s*
而不是\\s+
。
细节
(?<=
- 匹配字符串中紧跟其模式之前的位置的正向后视的开始:status.*?deleted
- status
,然后是除换行符以外的零个或多个字符,然后尽可能少地deleted
\\s+
- 一个或多个空白字符)
- 回顾结束.*
- 除换行符以外的零个或多个字符,尽可能多您可以使用正向后视,就像您现在所做的那样,但您需要添加所有要求(附加文本和分隔符deleted
):
(?<=status.*deleted).*
应该给你你想要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.