使用正则表达式替换特定字符串之前和之后的所有文本

时间:2013-04-29 21:04:41

标签: regex

我有以下字符串:

“我想要的字符串前的文字。说明:这是我要保留的字符串。评分:5星。”

从这个字符串我想剪切第一部分和最后一部分。只有中间才是我需要的。我用来加载这些字符串的程序可以执行RegEx“搜索和替换”。所以我可以用空格替换字符串的第一个和最后一个部分来清空这些部分。

“描述”和“评级”字样始终以此形式出现,因此可用于创建RegEx。

2 个答案:

答案 0 :(得分:3)

尝试将以下正则表达式的匹配替换为空字符串(或空格):

^.*?Description:|Rating:.*$

如果“我想要的字符串前面的文字”也可以包含“描述:”或者你想要保留的字符串可以包含“评分:”,这可能会有一些意想不到的行为。

请注意,从技术上讲,此处不需要锚点(^$),但它们仍然有用,可以清楚地表明从字符串开头到“描述:”的所有内容都是被删除,以及从“评级:”到字符串结尾的所有内容。

答案 1 :(得分:1)

如果您的工具/编程支持环视:

'(?<=Description: ).*(?=Rating: )'

会给你中间部分。这样你就不必“替换”了。只需提取匹配的部分。