- ベストアンサー
パターンマッチ変換について
& → & ; → &#x3b; の2つの実体参照エスケープを $value =~ s/&/&/g; $value =~ s/;/&#x3b;/g; で行うと、「&」の変換で出来上がった最後の「;」が次の「;」の変換の対象になって失敗してしまいます。 2つのパターンを同時に変換する方法をご存知でしたら、是非教えてください。 宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
関連するQ&A
- 文字実体参照が勝手に変換されてしまう
簡単な問合せフォームを作成中に文字実体参照に変換した文字が、元に戻されてしまい困っています。簡単なサンプルを作成してみましたが、以下の様な状態です。 1.入力フォームを持ったHTMLに 「<>と<と>」 と入力し、xxx.cgiに渡します。 2.xxx.cgi内で入力文字列を取得し、文字実体参照に変換後<hidden>で値を保持、再度xxx.cgiに<hidden>の文字列を渡すようにします。この時点で入力値は 「<>と&lt;と&gt;」 となります。 3.再度xxx.cgiが呼ばれると、文字実体参照に変換する処理が行われる為、入力値が 「&lt;&gt;と&amp;lt;と&amp;gt;」 となるはずですが、 「<>と&lt;と&gt;」 となってしまいます(変換処理が行われているはずなのに変換されていない)不思議に思って変換前のCGIの引数を確認してみると、 「<>と<と>」 と文字実体参照が元に戻されてしまっています。 ちなみに文字実体参照の変換処理は$valueに対象の文字が入っているとして以下の方法で変換しています。 ---------- $value =~ s/&/&/g; $value =~ s/"/"/g; $value =~ s/</</g; $value =~ s/>/>/g; $value =~ s/\n/<BR>/g; ---------- こういった現象についてでも何か分かるようでしたら宜しくお願いします。
- ベストアンサー
- Perl
- パターンマッチと除算
perl初心者です。学生でperlを学びはじめたばかりです。 文の変換プログラムをperlで作りたいのですが、 各辺が5cmの四角形→50mm 正方形 30分間の走りこみ→0.5時間 マラソン という具合に言葉の置き換えと数字の変換を同時に行えるようなプログラムを作りたいです。 また、数字を拾うときに言葉によって式を変えたいです。 $pattern =~ s///g;と数値演算子/を使ってやるのは分かるんですが、それをどう組み合わせて使ったらよいのかわかりません。 簡単なことを質問して申し訳ありません。 どうかよろしくお願いします。
- ベストアンサー
- Perl
- 「3つの数字パターンをひとつの記号に変換する」ことをエクセルで行いたい
「3つの数字パターンをひとつの記号に変換する」ことをエクセルで行いたいです。 例)A1、A2、A3のセルにそれぞれ「-1」「0」「5」という数字があります。この数字の並びを参照して、次の条件でB3のセルに文字で置き換えたいのですが、どのようにすればよいでしょうか? 条件1/A1~A3までの数値のうちマイナスの数値が0~1個の場合,B 条件2/A1~A3までの数値のうちマイナスの数値が2~3個の場合,S 説明不足な点があるかもしれませんが、よろしくお願いいたします
- ベストアンサー
- その他MS Office製品
- ラプラス変換
線形フィードバックシステムをラプラス変換を使って解く問題があり、入力がx(t)で出力がy(t)となっており関係が Y(s)={X(s)F(s)+N(s)}G(s)/{1+KF(s)G(s)} となるところまでできたのですが、ここからラプラス逆変換をしてy(t)を求めるところができません、どなたかできる方教えてください。また計算のコツなどがありましたら教えてください。 n(t) + ____ ↓+ ____ x(t)ー→|f(θ) |ー→|g(θ) |ーー→y(t) ↑-  ̄ ̄ ̄ ̄ +  ̄ ̄ ̄ ̄ | |______________*k←____________| x(t)=asin(ωt),X(s)=aω/(s*s+ω*ω),n(t)=bsin(μt),N(s)=bμ/(s*s+μ*μ) f(θ)=e^(-αθ),F(s)=1/(s+α),g(θ)=e^(-βθ),G(s)=1/(s+β)
- ベストアンサー
- 数学・算数
- ラプラス変換の問題について
ラプラス変換を用いて問題で次の問題が分かりません。 次の関係を同時に満たす関数x(t) y(t)を求めよ。 x' = 3s - y y' = x + y x(0) = 0, y(0) = 1 やったことのない型なのでどうすればいいのかわかりません。 お願いします。
- ベストアンサー
- 数学・算数
- 良い考え方を知りたいです。(パターン照合について)
良い考え方を知りたいです。 良い…処理が早い。 考え方…アルゴリズム(と言うのでしょうか) 与えられた部品のリストをマスターと照合し、完成させるタイプ(パターン)を判別したいと考えています。状況の例としては、 ○与えられる部品リスト A,C,E,G,I,K,L,N,P… (アルファベットには8文字程度の文字列が入ります) ○マスター保持している例 パターン1:A,B,D,E,G,J,K… パターン2:B,D,E,G,J,M… パターン3:J,S,T,V,W,X,Z… パターン4:A,B,D,Y,Z… パターン5:A,C,E,G,I,K,L,N,P… (各タイプに保持されているマスタデータは順不同、且つ不特定数です) こんな感じで、データベース(MS AccessやSQLサーバー等)に保持されている各タイプと照合し、 与えられた部品リストがどのタイプ(パターン)に合致するか(一番近いか)を 判別するプログラムを作成したいのですが、 どんな考え方が適しているか、ご教示頂けないでしょうか? 照合するパターンはおよそ200弱、リストで渡される部品数は50前後です。 プログラミング自体は素人ですが、 ・適当なアルゴリズム ・サンプルソース(言語は何でも結構です) ・参考資料の探し方、検索場所 いずれかでご回答お願い申し上げます。
- 締切済み
- その他(プログラミング・開発)
- ラプラス変換(何度も何度もすみません・・・)
先ほど質問した、(d^2 x)/(dt^2)+4x=sint,x(0)=0,x’(0)=0をラプラス変換せよという問題は、以下の方法で計算できることを教えてもらいました。 X(s)={1/(s^2+1^2)}{1/(s^2+2^2)}=a/(s^2+1^2)+b/(s^2+2^2) as^2+4a+bs^2+b=1 a+b=0 4a+b=1 a=1/3,b=-1/3 L^-1(X)=(1/3)L^-1{1/(s^2+1^2)}-(1/3)(1/2)L^-2{2/(s^2+2^2)} =(1/3)sin(t)-(1/6)sin(2t) で、次は、(d^2 x)/(dt^2)+4x=e^(3t),x(0)=0、x‘(0)=0という問題です。 この問題も上の問題みたいにs^+●みたいな形が出てくる問題です。 ラプラス変換すると、(s^2+4)X(s)=1/(s-3)でX(s)=1/{(s-3)(s^2+4)}になるのですが、これを上の方法でやるとa(s^2+2^2)+b(s-3)=1でas^2+a2^2+bs-3b=1になりsが消えません。上の問題はa+b=0でsが消えて連立方程式で求めれたのですが、今回はどうなのでしょうか。教えてください。
- ベストアンサー
- 数学・算数
- 逆ラプラス変換について
L^(-1)[log((s+a)/(s+b))](x) という問題をとくのに授業でもらったプリントに F(s)=log((s+a)/(s+b))=log(s+a)-log(s+b) とおく s→∞でlimF(s)=0 でありF'(s)=1/(s+a)-1/(s+b) であるのでF(s)=-∫F'(t)dt (s~∞)=∫{1/(t+a)-1/(t+b)}dt (s~∞) である.ここでG(s)=1/(s+a)-1/(s+b) と置くと F(S)=∫G(t)dt(s~∞) でありg(x)=L^(-1)G(x)=e^(-bx)-e^(-ax) よってL^(-1)F(x)=L^(-1)[∫G(t)dt](x) (s~∞) =g(x)/x==e^(-bx)-e^(-ax)/xと書いてありましたが 途中のF(s)=-∫F'(t)dt (s~∞)がこうなるのがよくわかりません.公式ですか? ただL^(-1)(s/(s^2+4)^2)(x) を上記の通りに解いたら2(e^(x)-cosx)/xとなりました.これは合っているのでしょうか?
- ベストアンサー
- 数学・算数
- viでの置換
if($b =~ /(?=A?B{1,2})/){ print "b\n"; } この文章中で?=の=だけ!に置換したいのですが :%s/?=\&=/!/g だとE486: パターンはみつかりませんでした: ?=\&=と表示されました. ですが, :%s/=A\&=/!/g だとうまくいきました.?がエスケープされてないから(素人目線ですが)と思い :%s/\?=\&=/!/g とすると E64:\? の後になにもありません E476: 無効なコマンドです 続けるにはENTERを押すかコマンドを入力してください となりました.なぜ:%s/?=\&=/!/gではダメなのでしょうか?
- 締切済み
- Linux系OS
お礼
修正が上手くいったようなのでお礼をさせてもらいます。 なるほど、ハッシュを使って場合分けすれば良いんですね。 勉強になりました。
補足
ご回答ありがとうございます。 既に気づいているとは思いますが、質問文にミスがあったので訂正します。 (修正も削除もできないようなので、回答されるまで、何もできないんですよね…。) & → & ; → ; のエスケープを $value =~ s/&/&/g; $value =~ s/;/;/g; でやると失敗。 という事です。 (また、ミスってなければ良いのですが…。)