• ベストアンサー

ActionScript3の正規表現で文字列変数comの最初にアットマ

ActionScript3の正規表現で文字列変数comの最初にアットマーク(@)が 含まれているか調べたいのですが 以下のコードの /[^@]/ という部分が間違っているらしく 全てtrueになってしまいます。 var myPattern:RegExp = /[^@]/; var msg:Boolean = myPattern.test(com); trace(msg); // 出力: true /[^'@']/ や /[^\@]/ など試しましたがダメでした。 どうすればよいでしょうか。 正規表現は初めてなので難しいので、ご教授お願いします。

  • reimy1
  • お礼率64% (244/379)
  • Flash
  • 回答数1
  • ありがとう数5

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

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

^abc は行の始めのabcの意味だけど [^abc] はaでもbでもcでもないって意味 ^@.* が妥当かと

参考URL:
http://ja.wikipedia.org/wiki/正規表現
reimy1
質問者

補足

^@.* で正解でした。助かりました。 ただ、この意味を知りたいのですがWikiを見てもあまり理解できなかったです。 アスタリスクは直前の表現が0個以上とありましたがこの場合ドットを指すのでしょうか? それと、ドットは「任意の 1 文字に一致します。」ということは@でなくても よいということなのでしょうか。 それと@とアスタリスクの間にドットがある意味などです。 できれば知りたいので教えていただけると助かります。 宜しくお願いします。

関連するQ&A

  • 正規表現内に変数を使用する方法

    match() や replace() の第1引数に文字列ではなく正規表現を使用 できますがこの正規表現内に変数を使用する場合、どうやったらよいの でしょうか。 var str = 'てすと'; alert(str.replace(/str/, 'テスト')); とすることができません。 (Perlではパターン内に変数が使用できるのですがJSでは変数が使用 できません) http://ar.aichi-u.ac.jp/blog/js-replace.html に書いてあるように第1引数に文字列を渡すと正規表現ではなくただの 文字とのマッチになってしまうようなので(確認済み)使えません。 面倒ですがリンク先にあるようにnew RegExpでRegExpオブジェクトを 作ってやる方法しかないんでしょうか。

  • actionscriptで、変数に変数を使いたい場合

    お世話になります、actionscript初心者です phpでは以下のようにすれば変数に変数の使用が出来ますが --- function test ($num){ $pops{$num} = "aaa"; print ($pops15); } test("15"); // aaaと表示される actionscriptで変数に変数を使いたい場合 どのように記述すれば良いのでしょうか? 以下のようなsampleを組みましたが出来ませんでした --- function test (Num){ var Pops[Num] = "aaa"; trace(Pops[15]); } play_button.onRelease = function (){ test(15); // シンタックスエラーになってしまう } 変数に変数を使用 actionscript など、もろもろで検索したり 人が制作したactionscriptを参照しましたが、ほしい情報は出てきませんでした。 actionscriptにはphpのような変数に変数を使用できる便利な記述方法はないのでしょうか? 分かる方、お手数ですがご教授よろしくお願い致します。

    • ベストアンサー
    • Flash
  • 正規表現内での変数の扱いに関して

    正規表現内での変数の扱いに関して あるの変数の文字列が別の変数の文字列を冒頭に含むかどうか判別した上でその差分を抽出するコードを書こうとしています。 $a='komekoron'; $b='kome'; if($a=~/^$b(.+)$/){print $1}; このコードを実行すると「koron」が出力されます。 同様に以下のコードで「:」を出力させたいのですが上手くいきません。 $a='*:'; $b='*'; if($a=~/^$b(.+)$/){print $1}; 出力内容は「*:」 これは変数内の文字列がパタンとして扱われているのでしょうか。どうすれば意図する動作になるでしょうか。ご教授願います。

    • ベストアンサー
    • Perl
  • 正規表現 TCL regexp関数

    regexp関数を用いて正規表現で文字列を操作したいですが、 上手く正規表現でかけなくて困っております。 変数=第一文字列,第二文字列,第三文字列,第四文字列,第五文字列 regexp --{,,,,$} 変数 match A B C D E と実現し、区切った文字をそれぞれA-Eの変数へ代入。 【操作文字列】 ・CSV形式の”,”カンマ4つで5区分に切ります ・第一文字列は先頭の文字は空白以外の[A-Za-z0-9_]途中空白有(\s) ・第二文字列は空(,,) ・第三文字列は数字 ・第四文字列は文字のみ空白なし数字なし ・第五文字列は数字文字混在 このように実現したいのですが、正規表現を見ながら regexp --{\c\w,^\c,\d+,\w+,\c+$} 変数 match A B C D E のようにやったのですが、無理でした

  • (秀丸)正規表現で、変数¥1内より、""のみ削除

    お世話になります。 秀丸エディタの正規表現で、 変数¥1内に、取得した文字列値が、 "1,234" だった場合、 その変数値より、""(ダブルコーティション)のみを削除して、 変数¥1内に、 1,234 として、セットし直したいです。 そこでご質問させていただきますが、 既存の変数¥1内に取得する為の正規表現のところに対して、 さらに、 どのように正規表現を追記すれば、 上記しましたように、 変数¥1内に、 1,234 として、セットし直すことが出来ますでしょうか? 以上になります。 宜しくお願いいたします。

  • 正規表現について

    VB6ですが・・・ '次のようなコードがあって <!-- と --> に囲まれる文字列を抜き出したのですが 'どのようなパターンマッチを書けばいいのでしょうか? 'HTMLのコメントのみを抜き出したいと思っています。 Const s = "<!--今日-->" _ & "<!--僕は--><!--正規表現を--><!--勉強します-->" Dim x As RegExp Dim v As match Set x = New RegExp x.Pattern = "パターン" x.Global = True For Each v In x.Execute(s) Debug.Print v.Value Next

  • 正規表現について

    php5を使って正規表現を勉強中です。 1度の正規表現で、拡張子を除いた ファイル名だけ抜き出すにはどうしたらよいでしょうか。 例えば、以下のような文字列から、…以降のファイル名を抜き出したいです。 /var/www/html/index.html  …indexを抜き出したい /var/www/html/login/login.php …loginを抜き出したい /var/www/html/js/script.js …scriptを抜き出したい

    • 締切済み
    • PHP
  • 正規表現 Microsoft VBScript Regular Expression 5.5

    Microsoft VBScript Regular Expression 5.5を参照設定でVBから使ってます。 このRegExpオブジェクトがどうも挙動不審。 Dim REFind As New RegExp REFind.Pattern = "そのた" REFind.IgnoreCase = True REFind.Global = True REFind.MultiLine = True If REFind.Test(moji) Then hogehoge .... というところで、まずぜんぜん "そのた" という文字列が入った文字列にマッチしません。 REFind.Pattern = "の" とかやると、"そのた\ほげほげ" とかにはマッチしますが、"ほげほげ そのた" とかにはマッチしません。 内部で日本語には対応してないんでしょうか? Replaceメソッドで置換文字列としてUNICODE依存のハートマークなどを入れてみましたが、ちゃんとハートに置換してくれました。 だから内部処理はUNICODEだと思うのですが。 それとも、そもそもVBScriptとか書いてあるものをVBから使うのが間違い? ちなみにこのプログラムはFindFirstFileWから受け取ったファイルを正規表現で絞って、さらに正規表現を使って一括でファイル名の変更やコピーなどを行うプログラムです(全然できてませんが)。 表示にはMSForms2.0を使い、正規表現の部分を除けば、ちゃんとFindFirstFileWから受け取ったハートマーク付きのファイルを表示しています。 特にUNICODE依存の文字に置換しようとか思ってるわけじゃないですが。 なので、表示部などのバグではないと思います。 この挙動不審の原因が分かる方、または挙動不審でない正規表現を扱える(できればUNICODE)オブジェクトライブラリなどをご存じの方いらっしゃったらお願いします。 --- W2K+VB6

  • 正規表現[0-9]

    ある文字列が大文字のアルファベット(A~Z)で構成されていることを正規表現を用いてチェックしたいと思ってます。 例えば "A0001" という文字列が A~Z で構成されているかを判断しるにはどうしたらよいですかね?? PatternクラスとかMatcherクラスとかを使用するみたいなんですが、なんかよくわかりません。 以下のように動かしたんですが、全く動きません。 boolean result_flag=false; if("A0001"=[A-Z]){   result_flag=true; } Javaおよびプログラム初心者でわかりずらくてすいませんが、 どうかお助けをよろしくお願いいたします。

    • ベストアンサー
    • Java
  • JBScriptの正規表現のマッチ文字を変数化

    初めての質問です。 質問用にプログラムを次の通りに作りました。実行すると OK と表示しますが、これを、文章に応じて表示させたいのです。本例の場合は、曇り20度、湿度60% です。 つまり、正規表現でマッチした文字を変数に代入して、その変数を用いて、msgbox出力したいのですが、どの様にコード(マッチ文字の変数化)を記述すれば良いのでしょうか? 本例でいえば、曇りを変数xに、20を変数yに、60を変数zに取り込めるようにしたいのです。 質問用なので、プログラムの意味はこだわらないでください。 本番用では、"本日は曇り20度ですが、湿度60%でした。"は、関数の引数で可変の文章です。 質問が下手で済みません。よろしくお願いいたします。 【sample.vbsの内容】 if blnCheck("本日は曇り20度ですが、湿度60%でした。") then msgbox "OK" '曇り20度、湿度60% と表示させたい else msgbox "NG" end if Function blnCheck(strLen) Dim objRE Set objRE = new RegExp objRE.IgnoreCase = True objRE.pattern = "^本.*(晴)|(曇り)|(雨)\d\d.*湿度\d\d.*" blnCheck = objRE.Test(strLen) Set objRE = Nothing End Function

専門家に質問してみよう