置換No.29806
eigodono1 さん 11/05/18 09:53
 
次のような文章をAからBへ置換するには、どうすればいいですか?

A


(16) DPD欠損が疑われるような、フルオロピリミジン系薬剤に対する副作用が発現し
たことがある。 
(16) History of adverse events related to DPD loss 
(17)コントロール不能な下痢を有する。 
(17) Uncontrolled Diarrhea 
(18) Grade 1以上の末梢神経障害を有する。(19)コントロール不能な感染症を有する。
(20)妊婦、授乳婦、妊娠検査陽性の女性又は避妊する意思のない女性。 
(18) Peripheral neuropathy (Grade1<=)&nbsp;


B

(16) History of adverse events related to DPD loss&nbsp; (16) DPD欠損が疑わ
れるような、フルオロピリミジン系薬剤に対する副作用が発現したことがある。&nbsp;
(17) Uncontrolled Diarrhea&nbsp; (17)コントロール不能な下痢を有する。&nbsp;
(18) Peripheral neuropathy (Grade1<=)&nbsp; (18) Grade 1以上の末梢神経障害を
有する。



[ ]
RE:29806 置換No.29808
秀まるお2 さん 11/05/18 10:37
 
 1行目に日本語の行があって、その次の行に英語のみの行があって、それを
「英語+日本語」の順で合体させて1行にしたい、さらにはその「英語」と「日
本語」の間にタブ文字を入れたい、というような、以前あったような話ですよね。


検索:   ^([^\t\n]*[\x81\x40-\xFC\xFF][^\t\n]*)\n([^\t\n\x81\x40-\xFC\xFF]+)$
置換:   \2\t\1

 でいけると思います。

[ ]
RE:29808 置換No.29811
eigodono1 さん 11/05/18 14:30
 
> 1行目に日本語の行があって、その次の行に英語のみの行があって、それを
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
> でいけると思います。


次のような場合はどうすればいいですか?AからBへと置換したいです。


例文

A

6. 制御されていない重複癌を有するもの。&nbsp;
6. Other malignancy requiring treatment&nbsp;
7. 治癒に至っていない外傷性病変を有するもの。&nbsp;
7. Non-cured traumatic wound&nbsp;
8. 医師,責任医師が不適と認めた症例&nbsp;
8. Decision of unsuitableness by principal investigator or physician-in-char
ge&nbsp;


B




6. Other malignancy requiring treatment&nbsp; 6. 制御されていない重複癌を有
するもの。&nbsp;

7. Non-cured traumatic wound&nbsp; 7. 治癒に至っていない外傷性病変を有するも
の。&nbsp;

8. Decision of unsuitableness by principal investigator or physician-in-char
ge&nbsp; 8. 医師,責任医師が不適と認めた症例&nbsp;



[ ]
RE:29811 置換No.29812
eigodono1 さん 11/05/18 14:32
 
>> 1行目に日本語の行があって、その次の行に英語のみの行があって、それを
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>






&nbsp;とは何ですか?もともとこんな文字は用意していないのに、ここへ投稿すると
出現したのはなぜですか?

[ ]
RE:29812 置換No.29813
秀まるお2 さん 11/05/18 15:08
 
 置換した結果の1つ1つに空行を入れたいということかと思うんですが、だと
したら、

検索:   ^([^\t\n]*[\x81\x40-\xFC\xFF][^\t\n]*)\n([^\t\n\x81\x40-\xFC\xFF]+)$
置換:   \2\t\1\n

 のように、置換文字列の最後に「\n」を付ければいいと思います。

> &nbsp;とは何ですか?もともとこんな文字は用意していないのに、ここへ投稿すると
> 出現したのはなぜですか?

 「&nbsp;」が出てくる原因としては、会議室へ書き込みしようとしたデータの
中に、「non-breaking space」という、一種の制御コートのような物が入ってい
たことになります。

 ここの会議室にはそういう制御コードは書き込みが出来ないのですけども、無
理矢理そういうデータを書き込みしようとすると、Internet Explorerの方で、
自動的にそういう「&nbsp;」のように書き換えられるようです。

 ちなみにこの「non-breaking space」というのは見た目上は普通の半角空白と
同じですが、文字コード的には別の文字ということになります。

[ ]
RE:29813 置換No.29814
eigodono1 さん 11/05/18 15:34
 
> 置換した結果の1つ1つに空行を入れたいということかと思うんですが、だと
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>同じですが、文字コード的には別の文字ということになります。





置換した結果の1つ1つに空行を入れたいということではありません。

[ ]
RE:29813 置換No.29815
eigodono1 さん 11/05/18 15:39
 
> 置換した結果の1つ1つに空行を入れたいということかと思うんですが、だと
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>同じですが、文字コード的には別の文字ということになります。



もともとのファイルには現れないはなぜですか?

[ ]
RE:29815 置換No.29816
eigodono1 さん 11/05/18 15:40
 
>> 置換した結果の1つ1つに空行を入れたいということかと思うんですが、だと
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>もともとのファイルには現れないはなぜですか?


貴殿が以前教えてくれた正規表現を使ったものです。

[ ]
RE:29816 置換No.29817
eigodono1 さん 11/05/18 15:43
 
>>> 置換した結果の1つ1つに空行を入れたいということかと思うんですが、だと
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>貴殿が以前教えてくれた正規表現を使ったものです。

以下がそのマクロです:



     question "臨床試験整理マクロ";
    if( result != yes ) {
        endmacro;
    }
    replaceallfast "(^[^()\\n]*\\([^()\\n]*\\)[^()\\n]*\\([^()\\n]*\\)\\n)|
(^[\\x81\\x40-\\xFC\\xFF]+/[^\\x81\\x40-\\xFC\\xFF\\n/]+\\n)|(^[\\x81\\x40-\
\xFC\\xFF]+\\([\\x81\\x40-\\xFC\\xFF]+)/[^\\x81\\x40-\\xFC\\xFF]+\\n)|(^\\t)"
        , ""
        , regular, casesense;


#searchoptionOrg = searchoption;
$searchbufferOrg = searchbuffer;
$replacebufferOrg = replacebuffer;
replaceallfast "(\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n)|"
    + "(\\n\\n\\n\\n\\n\\n\\n\\n\\n)|(\\n\\n\\n\\n\\n\\n\\n\\n)|"
    + "(\\n\\n\\n\\n\\n\\n\\n)|(\\n\\n\\n\\n\\n\\n)|"
    + "(\\n\\n\\n\\n\\n)|(\\n\\n\\n\\n)|(\\n\\n\\n)|(\\n\\n)|\\n"
    , "\\n"
    , regular;
setsearch $searchbufferOrg,#searchoptionOrg;
setreplace $replacebufferOrg;







    replaceall "^\\d+\\n", "", regular;
    message "置換完了";
 
 

[ ]
RE:29817 置換No.29819
秀まるお2 さん 11/05/18 16:25
 
 そのマクロは、何か余計な文字を除去する用に作成されたマクロなので、今回
のような置換をする用のマクロとはまったく別ではないでしょうか。なぜなら、
置換した結果が""になっているので、つまり、何かを除去する用のマクロとしか
思えないからです。

 今回やりたいのは、「日本語が1行あって、次に英語の1行がある」という形
式の物を、「英語 タブ 日本語」の1行に変換したい、ということじゃないで
しょうか。だとしたら、最初に僕が書いた、

検索:   ^([^\t\n]*[\x81\x40-\xFC\xFF][^\t\n]*)\n([^\t\n\x81\x40-\xFC\xFF]+)$
置換:   \2\t\1

 で置換すればうまくいくはずだと思います。

[ ]
RE:29815 置換No.29820
秀まるお2 さん 11/05/18 16:29
 
> もともとのファイルには現れないはなぜですか?

 元々のファイルの中では、見た目上は普通の半角空白のようにしか見えなくて、
見た目上で区別することが出来ないです。

 例えば検索コマンドで、半角空白を検索してみて欲しいです。そうすると、見
た目上で半角空白に見えるのにうまくヒットしない半角空白があるはずだと思い
ます。それがつまり、「non-breaking space」という、見た目上は半角空白だけ
げも実際には別の文字という、その文字ということになります。


 もし、そういうややこしい半角空白が混じってるのを普通の半角空白に変換さ
せてしまいたいということであれば、たとえば以下のマクロを実行すればいいで
す。

    replaceallfast "\u00A0" , " ";

 そうすると、その「non-breaking space」というややこしい種類の文字が、普
通の半角空白に置換されます。

[ ]
RE:29819 置換No.29821
eigodono1 さん 11/05/18 17:20
 
> そのマクロは、何か余計な文字を除去する用に作成されたマクロなので、今回
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
> で置換すればうまくいくはずだと思います。





 今回やりたいのは、「日本語が1行あって、次に英語の1行がある」という形式の
物を、「英語 タブ 日本語」の1行に変換したい、ということです。

[ ]
RE:29821 置換No.29823
秀まるお2 さん 11/05/18 17:45
 
 だとしたら、つまり、先ほどの僕の発言にあるように、

検索:   ^([^\t\n]*[\x81\x40-\xFC\xFF][^\t\n]*)\n([^\t\n\x81\x40-\xFC\xFF]+)$
置換:   \2\t\1

 の置換でうまくいくんじゃないでしょうか。僕の所でテストした限りはそれで
うまくいきました。

 昔お返事した例では、

検索:   ^([^\t\n]*[\x81\x40-\xFC\xFF][^\t\n]*)\n([^\t\n]+)$
置換:   \2\t\1

 のような例をお返事したこともあったようなので、こっちのパターンでもいけ
るかと思いますけども…

 マクロでやるとしたら、

  replaceallfast
      "^([^\\t\\n]*[\\x81\\x40-\\xFC\\xFF][^\\t\\n]*)\\n([^\\t\\n]+)$"
      , "\\2\t\\1"
      , regular;

 の1行だけのマクロで置換出来ると思います。

[ ]
RE:29823 置換No.29825
eigodono1 さん 11/05/19 09:07
 
> だとしたら、つまり、先ほどの僕の発言にあるように、
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
> の1行だけのマクロで置換出来ると思います。


ありがとうございます。当分の間、現状維持の方針でいきます。

[ ]
RE:29825 置換No.29830
eigodono1 さん 11/05/20 10:31
 
>> だとしたら、つまり、先ほどの僕の発言にあるように、
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>ありがとうございます。当分の間、現状維持の方針でいきます。


次の文章がイメージ通りにならないのはなぜですか?


1.病的骨折を有する患者&nbsp;
1. has pathological fracture&nbsp;
2.悪性新生物を有する患者&nbsp;
2. has malignancies&nbsp;
3.同意取得6ヶ月以内に他の骨粗鬆症臨床試験に参加した者&nbsp;
3. has participated in a different trail on osteoporosis within 6 months&nbsp;
4.MRI撮像が不能な者&nbsp;
4. is unable to undergo MRI&nbsp;
5.本骨折受傷以前から歩行不能な者&nbsp;
5. had been unable to walk before injury&nbsp;
6.治癒していない既存椎体骨折がある者&nbsp;
6. has unhealed previous vertebral fractures&nbsp;
7.認知症や寝たきりの患者&nbsp;
7. has demintia&nbsp;
8.研究責任者や担当者が不適当と判断した者
8. is judged inappropriate to participate in this study by the investigators
&nbsp;
9.重篤な合併症により運動器リハビリテーションが受けられない者
8. has severe general complications that hampers proper rehabilitation&nbsp;

つまり、上記の文が次のようになればいいのにならないのです:

1. has pathological fracture&nbsp; 1.病的骨折を有する患者&nbsp;

2. has malignancies&nbsp; 2.悪性新生物を有する患者&nbsp;

3. has participated in a different trail on osteoporosis within 6 months&nbs
p; 3.同意取得6ヶ月以内に他の骨粗鬆症臨床試験に参加した者&nbsp;

4. is unable to undergo MRI&nbsp; 4.MRI撮像が不能な者&nbsp;

5. had been unable to walk before injury&nbsp; 5.本骨折受傷以前から歩行不能
な者&nbsp;

6. has unhealed previous vertebral fractures&nbsp; 6.治癒していない既存椎体
骨折がある者&nbsp;

7. has demintia&nbsp; 7.認知症や寝たきりの患者&nbsp;

8. is judged inappropriate to participate in this study by the investigators
&nbsp; 8.研究責任者や担当者が不適当と判断した者

8. has severe general complications that hampers proper rehabilitation&nbsp;
 9.重篤な合併症により運動器リハビリテーションが受けられない者

一文ごとの改行はあってもなくても構わないのですが、貴殿の正規表現を使ってもう
まくいかないのはなぜですか?使用した正規表現は


検索:   ^([^\t\n]*[\x81\x40-\xFC\xFF][^\t\n]*)\n([^\t\n\x81\x40-\xFC\xFF]+)$
置換:   \2\t\1

です。

[ ]
RE:29830 置換No.29832
秀まるお2 さん 11/05/20 11:31
 
 こちらで簡単にテストした限りはうまくいくようです。すべての行が置換出来
ました。

 僕の作った正規表現は、日本語/英語の文中にタブ文字が混じってる場合には
あえて置換しないようにしてますけど、そのせいかもしれません。もしそうだと
したら、

検索:   ^(.*[\x81\x40-\xFC\xFF].*)\n([^\n\x81\x40-\xFC\xFF]+)$
置換:   \2\t\1

 とすればうまく置換するんじゃないかと思います。

 もしそれでもダメでしたら、元のデータを添付ファイルにしてメールで送って
いただければ、たしかにうまくいかなことがこちらでも確認出来るかと思います
けど、どうでしょうか。

 ちなみに送り先のメールアドレスは"maruo@mitene.or.jp"です。

[ ]
RE:29832 置換No.29838
eigodono1 さん 11/05/20 17:03
 
> こちらで簡単にテストした限りはうまくいくようです。すべての行が置換出来
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
> ちなみに送り先のメールアドレスは"maruo@mitene.or.jp"です。


上記の正規表現であれば、うまく置換できました:
検索:   ^(.*[\x81\x40-\xFC\xFF].*)\n([^\n\x81\x40-\xFC\xFF]+)$
置換:   \2\t\1


です。



[ ]
RE:29832 置換No.29879
eigodono1 さん 11/05/31 14:55
 
> こちらで簡単にテストした限りはうまくいくようです。すべての行が置換出来
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
> ちなみに送り先のメールアドレスは"maruo@mitene.or.jp"です。

次の文章がうまく置換できないのはなぜですか?



1)腹腔鏡下手術施行症例&nbsp;
1)With a history of laparoscopic surgery&nbsp;
2)緊急手術症例&nbsp;
2)Requires emergency surgery&nbsp;
3)研究薬投与前(4週間以内)に漢方製剤を服用した症例&nbsp;
3)Has a history of taking kampo medicine within 4 weeks of taking test drug;
&nbsp;
4)胃切除症例(同時性・異時性)&nbsp;
4)Has history of gastrectomy (synchrony and/or asynchrony) ;&nbsp;
5)大腸切除症例(同時性のみ)&nbsp;
5)Has history of colectomy (synchrony) ;&nbsp;
6)肝切除術と同時に残肝に対してRFAなどを施行した症例&nbsp;
6)Has history of RFA;&nbsp;
7)潰瘍性大腸炎、クローン病などの炎症性腸疾患の合併症例&nbsp;
7)Has been diagnosed with ulcerative colitis, Crohn's disease, or irritable
bowel syndrome;&nbsp;
8)術前(4週以内)、術中の化学療法、放射線療法を予定している症例&nbsp;
8)Requires chemotherapy or anticancer radiation in the perioperative period
or within 4 weeks prior to surgery;&nbsp;
9)観察期間内(術後10日以内)に化学療法(TAE含む)、放射線療法を予定してい
る症例&nbsp;
9)Requires chemotherapy, including TAE or anticancer radiation within postop
erative 10 days;&nbsp;
10)本研究にエントリーする上で障害となるような肝障害がある症例&nbsp;
10)Has serious condition of liver that might adversely affect their ability
to participate in this study;&nbsp;
11)妊婦、妊娠の可能性のある症例、妊娠を希望している症例、授乳している症例&nbsp;
11)Is a pregnant, possibly pregnant, considering pregnancy or lactating fema
le; and&nbsp;
12)その他、医師が不適当と判断した症例
12)Is otherwise unacceptable for enrollment in the opinion of the investigat
or.









[ ]
RE:29879 置換No.29880
eigodono1 さん 11/05/31 14:59
 
>> こちらで簡単にテストした限りはうまくいくようです。すべての行が置換出来
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>


データを送信しました。

[ ]
RE:29880 置換No.29881
秀まるお2 さん 11/05/31 15:21
 
 こちらでテストした限りは、前回紹介させていただいた

検索:   ^(.*[\x81\x40-\xFC\xFF].*)\n([^\n\x81\x40-\xFC\xFF]+)$
置換:   \2\t\1

 で置換は出来ました。1〜12のすべてが置換出来ました。

 このデータですが、英文の行末にタブ文字が付いてるようです。なので、結果
として置換結果が、

 「英文 タブ タブ 和文」

 のような形式になってしまいます。

 複数になってしまったタブを1つだけにするには、

検索:   \t{2,}
置換:   \t

 で置換すればいいです。

[ ]
RE:29881 置換No.29882
eigodono1 さん 11/06/01 17:11
 
> こちらでテストした限りは、前回紹介させていただいた
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
> で置換すればいいです。





@
検索:   ^(.*[\x81\x40-\xFC\xFF].*)\n([^\n\x81\x40-\xFC\xFF]+)$
置換:   \2\t\1

A
検索:   \t{2,}
置換:   \t



上記の@からAの正規表現を連続して1度で行うマクロを教えてください。

[ ]
RE:29882 置換No.29884
秀まるお2 さん 11/06/01 17:30
 
 以下のような内容になります。

---------------------------------------------------------------------


replaceall "^(.*[\\x81\\x40-\\xFC\\xFF].*)\\n([^\\n\\x81\\x40-\\xFC\\xFF]+)$"
        , "\\2\\t\\1"
        , regular;
replaceall "\\t{2,}", "\\t", regular;

[ ]
RE:29884 置換No.29892
eigodono1 さん 11/06/03 10:49
 
> 以下のような内容になります。
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>replaceall "\\t{2,}", "\\t", regular;


マクロ実行前に、いったんタイトルが表示され、置換終了後にも、置換終了との表示
を出すにはどうすればいいですか?

[ ]
RE:29892 置換No.29893
秀まるお2 さん 11/06/03 11:17
 
 こんなのでどうでしょう。



question "日本語+改行+英語 → 英語+タブ+日本語 変換マクロ";
if( result != yes ) {
    endmacro;
}
replaceall "^(.*[\\x81\\x40-\\xFC\\xFF].*)\\n([^\\n\\x81\\x40-\\xFC\\xFF]+)$"
    , "\\2\\t\\1"
    , regular;
replaceall "\\t{2,}", "\\t", regular;
message "置換完了";

[ ]
RE:29893 置換No.29894
eigodono1 さん 11/06/03 15:03
 
> こんなのでどうでしょう。
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>message "置換完了";



ありがとうございます。対象文が出現したら、試してみます。

[ ]
RE:29893 置換No.29901
eigodono1 さん 11/06/07 13:58
 
> こんなのでどうでしょう。
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>message "置換完了";


このマクロ置換を実行するとき、ドラッグした部分だけが置換されるのですね?

[ ]
RE:29901 置換No.29902
秀まるお2 さん 11/06/07 15:55
 
> このマクロ置換を実行するとき、ドラッグした部分だけが置換されるのですね?

 開いてるファイルの中身全部を置換します。

[ ]
RE:29902 置換No.29903
秀まるお2 さん 11/06/07 16:32
 
 補足させていただきます。

>  開いてるファイルの中身全部を置換します。

 複数のファイルを開いてる場合に、開いてるファイルすべての中身を置換するとい
うことでは無いです。ややこしくてすみません。マクロを実行する秀丸の中だけ置換
します。

 ドラッグした部分(範囲選択した部分)だけ置換するようにマクロを直すとしたら、
以下のようにすればいいかと思います。

question "日本語+改行+英語 → 英語+タブ+日本語 変換マクロ";
if( result != yes ) {
    endmacro;
}
replaceall "^(.*[\\x81\\x40-\\xFC\\xFF].*?)\\t*\\n([^\\n\\x81\\x40-\\xFC\\xF
F]+?)\\t*$"
    , "\\2\\t\\1"
    , regular, inselect;
message "置換完了";

[ ]
RE:29902 置換No.29904
eigodono1 さん 11/06/07 16:34
 
>> このマクロ置換を実行するとき、ドラッグした部分だけが置換されるのですね?
>
> 開いてるファイルの中身全部を置換します。


選択した範囲だけが対象だと認識していました。選択した範囲だけを対象とするのは
どうすればいいのか?

[ ]
RE:29904 置換No.29905
eigodono1 さん 11/06/08 09:13
 
>>> このマクロ置換を実行するとき、ドラッグした部分だけが置換されるのですね?
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>選択した範囲だけが対象だと認識していました。選択した範囲だけを対象とするの
>はどうすればいいのか?


24時間以上も経って返事しないとはどういうことだ!!!

[ ]
RE:29905 置換No.29906
eigodono1 さん 11/06/08 09:14
 
>>>> このマクロ置換を実行するとき、ドラッグした部分だけが置換されるのですね?
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>24時間以上も経って返事しないとはどういうことだ!!!

今までの置換ファイルの責任をどう取るのか?

[ ]
RE:29906 置換No.29907
秀まるお2 さん 11/06/08 09:19
 
 29903番発言の方でお返事してたつもりでした。

 そちらにマクロの例が書いてあるのでそちらを参照お願いします。

[ ]
RE:29907 置換No.29908
eigodono1 さん 11/06/09 10:32
 
> 29903番発言の方でお返事してたつもりでした。
>
> そちらにマクロの例が書いてあるのでそちらを参照お願いします。


便利だ。

[ ]