誰でもオンにする正規表現で私を助けることができます:文字列をMS Wordの別の文字列に置き換える正規表現ですか?
filename_author
author_filename
に私はMS Wordの2003を使用していますし、Wordの検索と置換でこれを行うにしようとしています。私はuse wildcards
機能を試しましたが、運が全くありませんでした。
私はプログラムでそれを行うことができますか?ここで
誰でもオンにする正規表現で私を助けることができます:文字列をMS Wordの別の文字列に置き換える正規表現ですか?
filename_author
author_filename
に私はMS Wordの2003を使用していますし、Wordの検索と置換でこれを行うにしようとしています。私はuse wildcards
機能を試しましたが、運が全くありませんでした。
私はプログラムでそれを行うことができますか?ここで
は正規表現です:
([^_]*)_(.*)
そしてここでは、C#の例である:ここで
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
String test = "filename_author";
String result = Regex.Replace(test, @"([^_]*)_(.*)", "$2_$1");
}
}
はPythonの例である:
from re import sub
test = "filename_author";
result = sub('([^_]*)_(.*)', r'\2_\1', test)
編集:これで
(<*>)_(<*>)
と置き換えます:ワイルドカードを使用してMicrosoft Wordでこれを行うためには、検索文字列としてこれを使用
\2_\1
また、私が上に使用している構文の説明についてはAdd power to Word searches with regular expressionsを参照してください。
- アスタリスク(*)は、単語内のすべてのテキストを返します。
- より小さいおよびより大きい記号(<>)は、それぞれ各単語の開始および終了をそれぞれ とマークします。彼らは を検索して、 という1語を確実に返します。
- 括弧とその間のスペースは、単語を 個の異なるグループ:(最初の単語)(2番目の ワード)に分割します。かっこも を検索し、それぞれの式を に検索してください。ここで
私が推測するコードでこれを行う必要があるかもしれません。 2番目の部分を "myname_filename"のような固定されたテキストに置き換えなければならない場合は、私が必要とするものを知っていますか? –
ありがとうございます。これはトリックでした。 –
あなたが行く:
s/^([a-zA-Z]+)_([a-zA-Z]+)$/\2_\1/
文脈によっては、少し欲張りかもしれないという。
.NETでは、([^_]+)_([^_]+)
を正規表現として使用し、次にこの非常に特殊なケースの場合、置換パターンとして$2_$1
を使用できます。2つ以上の部品が必要な場合は、もっと複雑になります。
他の人が指摘しているように、(。*)は([^ _] +)よりも正規表現の2番目の部分では良いでしょう。 –
検索パターン:
([^_]+)_(.+)
交換パターン:
$2_$1
のC#では、あなたもこのような何かを行うことができます。
string[] parts = "filename_author".Split('_');
return parts[1] + "_" + parts[0];
あなたは正規表現について尋ねましたが、これは良い選択肢かもしれません。
MS Wordを使用しているので、プログラミング以外の方法で試してみることもできます。すべてのテキストをハイライト表示し、表 - >変換 - >表へのテキストを選択します。 2.列の数を2に設定します。[個別のテキスト]を選択し、[その他のラジオ]を選択して_を入力します。それはあなたにテーブルを与えるでしょう。 2つの列を切り替えます。次に、_を再度使用してテーブルをテキストに変換し直します。
または、Excelに全体をコピーして、分割してテキストに再結合し、それをWordにコピーアンドペーストする数式を作成できます。いずれもうまくいくだろう。
あなたはどの言語を使用していますか? – Gumbo
実際に私は正規表現をサポートするエディタでこれを使用する必要があります。 C++/C#はうまくいくはずです。 –
-1:どの言語ですか?どのエディタ? –