RegEx查找和替换句子

时间:2014-07-23 09:37:47

标签: regex replace find sentence

我正在寻找一种使用正则表达式查找和替换句子的方法。正则表达式应该能够找到任何长度的句子。我可以使用。*获得整个句子,但这不允许用\ 1替换。

FIND:
"QUESTION1" = "What is the day satellite called?"
"ANSWER1" = "The sun"

REPLACE:
<key>What is the day satellite called?</key>
<key>The sun</key>

5 个答案:

答案 0 :(得分:2)

您需要使用捕获组。这样您就可以通过反向引用来引用捕获的组。

正则表达式:

.*(?<= \")([^"]*).*

替换字符串:

<key>\1</key> 

DEMO

答案 1 :(得分:0)

使用以下表达式查找(需要修饰符:gm):

^[^=]+= "(.*?)"$

然后使用:

替换它们
<key>$1</key>

<key>\1</key>

答案 2 :(得分:0)

使用perl:

> cat temp
"QUESTION1" = "What is the day satellite called?"
"ANSWER1" = "The sun"

> perl -lne 'print "<key>".$1."<\/key>" if(/\".*?\".*?\"(.*?)\"/)' temp
<key>What is the day satellite called?</key>
<key>The sun</key>
> 

答案 3 :(得分:0)

Perl One-Liner

紧凑型方法:搜索(?m)"([^"]+)"$

如果您需要<key>$1</key>

,请替换为<key>What is the day satellite called?</key>

如果您需要"<key>$1</key>"

,请替换"<key>What is the day satellite called?</key>"

使用perl one-liner:

perl -pe 's!(?m)"([^"]+)"$!<key>$1</key>!g' yourfile

答案 4 :(得分:0)

对于那些来自Google搜索的用户,您可以在此处使用这个出色的工具找到要使用的正确的regex表达式:http://regexr.com/