• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【Java script】replaceの正規表現)

Java Scriptでreplaceを使った文字列の変換方法

このQ&Aのポイント
  • java scriptのreplaceメソッドを使って文字列の変換を行いたい場合、正規表現を用いて指定の文字を置き換えることができます。
  • 例えば、「d(e)-4-yl」という文字列を「d-4-yl」と変換する場合、replaceメソッドと正規表現を組み合わせて、「(e)」を空文字に置き換えれば良いです。
  • ただし、変換対象の文字が「(e)」のみでなく、さまざまな数字とアルファベットの組み合わせがある場合も考慮する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

> REPattern = /([a-zA-Z])\(e\)(-\d-yl)/g; > SRPattern = "$1$2"; 下記のサイトを参考に どのような意味なのか考えてみて下さい。 JavaScript/RegExp https://ja.wikibooks.org/wiki/JavaScript/RegExp 下記のサイトは「JavaScript」ではなく「Perl」なので違う部分もありますが、正規表現の参考になります。 Perl 5.8 《 正規表現 》 http://ashtarte.hotcom-web.com/utf8/smt.cgi?r+sara/&bid+0000003D&tsn+0000003D&

pikopiko29
質問者

お礼

返答が遅くなり申し訳ありません。 まず、出来ました。 また、正規表現を勉強できるサイトも教えていただきありがとうございます。 勉強していろいろなことに活用したいと思います。

その他の回答 (4)

回答No.5

> REPattern = /([a-zA-Z])\(e\)(-\d-yl)/g; ↑キャラクターセットがシフトJISの場合の¥(半角エンサイン)は、キャラクターセットがUnicode(ユニコード)の場合の\(半角バックスラッシュ)に見えますが、文字コードは同じでフォントが違うだけなので、普通にコピペするだけで おkです。

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.4

すみません。 まだ、ルール(規則)がよく分かりません。 「・・・d(e)-4-yl・・・」とありますが、この「・・・」と「d(e)-4-yl」と「・・・」が、どのようにつながっているのですか? それが分からないと、if文での判断ができません。 なお、注意事項ですが、「JavaScript」は「Java Script」と分けてはいけません。 「JavaScript」とくっつけてください。 また、「Java」という別の言語もあるので、「Java」は勉強中といわれても、全く別の言語ですので、間違えないでください。 しかし、「Java」と「JavaScript」が全く関係のない、別の言語、というのは、私も最初、意味が分かりませんでしたが・・・

pikopiko29
質問者

お礼

回答ありがとうございます。 ・・・は英文字と「(」「)」「-」などの記号が続きます。 >「Java」と「JavaScript」が全く関係のない、別の言語。。。 そうなんですね。 勘違いしていました。 注意したいと思います。 ありがとうございました。

回答No.2

> 文字列は下記の通りです。 >   アルファベット (e) ハイフン 数字 ハイフン yl ↑この「アルファベット、数字」が1文字の場合のみ変換します。 複数文字の場合は変換しません。 <html> <head> <meta http-equiv="Content-Type" content="Text/HTML; charset=Shift_JIS"> <title>test</title> </head> <body bgcolor="#8f9fff" text="#000000" link="#2f2fff" vlink="#d700d7" alink="#00ffff" > --> <script type="text/javascript"> <!-- REPattern = /([a-zA-Z])\(e\)(-\d-yl)/g; SRPattern = "$1$2"; Str = "d(e)-4-yl"; Rep = Str.replace(REPattern,SRPattern); document.write(Rep+'<br><br>'); Str = "n(e)-2-yl"; Rep = Str.replace(REPattern,SRPattern); document.write(Rep+'<br><br>'); Str = "d(e)-4-yl n(e)-2-yl d(e)-4-wer d(e)-4-cd d(e)"; Rep = Str.replace(REPattern,SRPattern); document.write(Rep+'<br><br>'); --> </script> <br> </body> </html>

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.1

厳密なルール(規則)が、ご説明では判断できないのですが、最後の2文字が「yl」のものだけが、「(e)」(「e」は、他のアルファベットの可能性あり)を削除する、と考えてよいでしょうか。 もしそうなら、「最後の2文字が“yl”の場合」を「If」文で調べて、最初の1文字目を、例えば「a」に入れ、5文字目以降を「b」に入れ、「a」と「b」を結合する、という考え方で、問題ないのでしょうか? 私が言いたいのは、「正規表現」を使わなくても、もっと簡単にできるのではないでしょうか?

pikopiko29
質問者

補足

if文を使うことは考えていませんでした。 また、説明が不十分でした。 正しくは ・・・d(e)-4-yl・・・ であり、変換したい文字列は文字列の途中に複数回出てきます。 「e」は別のアルファベットの可能性がありません。 excel_VBAのif文は得意ですが、javaはまだまだ勉強中です。 お手数でなければ、if文を使った時はどのようになるか教えていただけないでしょうか。

関連するQ&A