0

正規表現を使用して文を見つけて置き換える方法を探しています。正規表現は、任意の長さの文を見つけることができるはずです。文全体を .* で取得できますが、\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>
4

5 に答える 5

2

キャプチャ グループを使用する必要があります。後方参照を通じてキャプチャされたグループを参照できるようにします。

正規表現:

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

置換文字列:

<key>\1</key> 

デモ

于 2014-07-23T09:45:13.417 に答える
0

Perlワンライナー

コンパクトなアプローチ:検索(?m)"([^"]+)"$

必要に応じて置き換え<key>$1</key>ます<key>What is the day satellite called?</key>

また

置換:"<key>$1</key>"必要に応じて"<key>What is the day satellite called?</key>"

perlワンライナーで:

perl -pe 's!(?m)"([^"]+)"$!<key>$1</key>!g' yourfile
于 2014-07-23T09:59:27.143 に答える
0

パールを使用:

> 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>
> 
于 2014-07-23T09:56:58.377 に答える
0

次の式を使用して検索します (修飾子が必要です:gおよびm):

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

次に、次を使用してそれらを置き換えます。

<key>$1</key>

また

<key>\1</key>
于 2014-07-23T09:42:37.587 に答える
0

regexGoogle 検索から来ている人は、ここでこの素晴らしいツールを試して、使用する適切な表現を 見つけることができます: http://regexr.com/

于 2015-05-26T08:47:21.690 に答える