我正在寻找一种使用正则表达式查找和替换句子的方法。正则表达式应该能够找到任何长度的句子。我可以使用。*获得整个句子,但这不允许用\ 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>
答案 0 :(得分:2)
答案 1 :(得分:0)
使用以下表达式查找(需要修饰符:g
和m
):
^[^=]+= "(.*?)"$
然后使用:
替换它们<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)
紧凑型方法:搜索(?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/