• 締切済み

「英語」プログラムミングの正規表現の説明の意味

正規表現の説明を英文で読んでいるのですが意味がわからないので教えてください 英文 "\b" matches the empty string at the edge of a word. ここで言うempty stringとは何を指しているのでしょうか? 正規表現で"\bhoge\b", "\bhoge", "hoge\b"がどの様な動作をするのは理解できるのですが、説明のempty stringがここで何を指しているのかがよく分からないので説明をお願いします 英単語の節々には必ず空文字が有るということでしょうか? 空文字=空白ではないですよね? 自分なりに調べてみたのですが空文字=ヌル文字、つまり""ですよね? ちょっと意味がわかりません・・・ よろしくお願いします

みんなの回答

  • f272
  • ベストアンサー率46% (8066/17247)
回答No.3

私の言うことが理解でいないのは,あなたが空文字と空文字列の区別がつかないためだと思われます。ヌル文字は長さ1であって,空文字列とは異なりますと言ったよね。 そしてここで問題にしているのは空文字ではなく空文字列であり,そのうちの単語の端にある空文字列が\bにマッチすると言っているのです。

nasu8832
質問者

お礼

あなたの回答は明らかに英文とempty stringを理解していない 言い訳ご無用です

nasu8832
質問者

補足

その証拠に何一つ説明ができてませんね

全文を見る
すると、全ての回答が全文表示されます。
  • f272
  • ベストアンサー率46% (8066/17247)
回答No.2

> 星マークの位置に長さが0の文字が有るならばa*bの位置にあってもおかしく無いですか? もちろんその位置にも空文字列はありますよ。しかしここで問題にしているのは単なる空文字列ではなく単語の端にある空文字列です。

nasu8832
質問者

お礼

あなた英文の意味を理解しないで答えてるよね しかもヌル文字は長さ1じゃなかったの?w なんだかまったくempty stringを理解しなていないで回答している様ですね

全文を見る
すると、全ての回答が全文表示されます。
  • f272
  • ベストアンサー率46% (8066/17247)
回答No.1

empty stringとは空文字列のことです。言い換えると長さが0である文字列です。 なお,ヌル文字はアスキーコードが0の制御文字で,当然長さは1ですからempty stringとは異なります。

nasu8832
質問者

お礼

ありがとうございます Wikipediaには空文字=ヌル文字=長さが0と記載があったので同じものだと思いました https://ja.wikipedia.org/wiki/%E7%A9%BA%E6%96%87%E5%AD%97%E5%88%97 ところで長さが0というのはどう言う意味でしょうか? その肝心な部分が知りたいのです abc ABC xyzで この空文字が当てはまる部分が*abc* *ABC* *xyz*の星マークの部分です この部分に長さが0の文字があると言う意味がよくわかりません 星マークの位置に長さが0の文字が有るならばa*bの位置にあってもおかしく無いですか? 肝心な部分の説明をお願いします

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 正規表現

    正規表現について勉強中です。 先頭2文字をたとえばYQで入力させたい場合は どうマッチさせればよいのでしょうか? if string.match(/^YQ|[0-9]/) == null { nullの場合の処理 } としていますが、うまくいきません。 正規表現についてはまったくの初心者ですので、 笑わないでくださいね。

  • javaの正規表現について質問です。

    javaの正規表現matchesに関して質問です。 正規表現を用いて文字列が半角数字のみで出来ているかどうかを判定したいと思っています。 調べたとろこ下記の正規表現で判定できそうなのですが、 正規表現のルールが理解できず困っています。 ------------------------------------------- String aaa = "0123456789"; //パターン1 aaa.matches("^[0-9]{10,11}$"); //パターン2 aaa.matches("^[0-9]+$") ------------------------------------------- パターン1 ^[0-9]   →  文字列の先頭が0~9か判定 {10,11}   →  10~11回繰り返す(繰り返すというのは[0-9]かどうかということでしょうか?)           12文字目に文字を入れた下記文字列でもfalseが返ってきました。           解釈が間違えている?           String aaa = "0123456789a"; $      →  文字列の最後が[0-9]を10~11回繰り返しているかどうか? パターン2 ^[0-9]   →  文字列の先頭が0~9か判定 +$ →  文字列の最後が???? すいません自分で書いてて混乱してきました。 どなたかアドバイス下さい。

    • ベストアンサー
    • Java
  • 正規表現

    PHPのプログラミングの勉強をしています。 正規表現を使って?の1文字をマッチさせたいのですが http://hogehoge.com/?hoge=hoge などの/?の場合は正規表現でマッチさせないようにしたいのです。 宜しくお願い致します。

    • 締切済み
    • PHP
  • Java正規表現で全角記号

    Javaの正規表現 で「全角記号のみ」というのがどうしてもわかりません。 今Javaでプログラムを作っていてString name が nullの時と、全角記号半角記号スペースのみ、空文字の時に returnをnullにするif文を考えています。 しかし、半角記号と全角記号の正規表現がサッパリわかりません 。とくに全角記号が全くわかりません。 種類が多すぎてきりがないのです。 どうやって表現したらいいのでしょうか? [、-○]などがネットにはありましたが、エラーになります。 どうか教えてください! 追加の詳細が必要なときはコメントいただけましたら返信いたします。 よろしくお願いします。

  • [perl]正規表現

    質問させていただきます。 by ***.***.hoge.jp を正規表現で表すならば、 by\s+(ここに何が入るからわからない).hoge.jp この()の部分は何が入るのでしょうか? 初めの”by” と 最後の”hoge.jp” は確定で入るのですが、途中の部分は何の文字が来てもいいように正規表現を組みたいです。 何の文字が来てもいい、というような表現方法はありますでしょうか?

    • ベストアンサー
    • Perl
  • 正規表現で文字クラスの引き算

    お世話になります。 正規表現の文字クラスについてお聞きします。 0~6 の数字1字を [0-6] という風に指定しますが、 .NET 正規表現では、 この中から 3~5 は除く、というようなとき、 [0-6-[3-5]] と言う風に書けるようですが、 Perl では書けないようです。 (一応ラクダ本と perldoc perlre には当たりました) #! perl # regtest.pl -- 正規表現のテスト while(<DATA>) { chomp; print "$_ matches /[0-6-[3-5]/\n" if /[0-6-[3-4]/; } __DATA__ 0 1 2 3 4 5 6 7 8 9 のようなスクリプトを動かすと、 C:\test>regtest.pl 0 matches /[0-6-[3-5]/ 1 matches /[0-6-[3-5]/ 2 matches /[0-6-[3-5]/ 3 matches /[0-6-[3-5]/ 4 matches /[0-6-[3-5]/ 5 matches /[0-6-[3-5]/ 6 matches /[0-6-[3-5]/ のような結果が得られ、引き算が確かに聞いていません。 Perl と .NET 正規表現は互換ではないのでしょうか。 また、Perl でも同じことが書けるでしょうか。 よろしくご教示願います。

    • ベストアンサー
    • Perl
  • 時間の正規表現

    正規表現で、17:00:00という文字の17:00(時:分)の部分だけを見て、時間として認識させたいのですが、どのように記述すればいいのでしょうか? 以下のプログラムを作成したのですが、なぜかfalseが返されてしまって困っています。 教えてください。宜しくお願いいたします。 String str_time = "17:00:00"; String str = "([0-9]|([0-1][0-9]|[2][0-3]))[:][0-5][0-9]"; Pattern pat = Pattern.compile( str ) ; Matcher mat = pat.matcher( str_time ) ; if( mat.matches() ){ // 処理 }

    • ベストアンサー
    • Java
  • 英数字と記号の正規表現

    英数字と記号の文字であればtrueを返すような判定を正規表現で行いたいです。 英数字の判定([0-9a-zA-Z])、記号([\\p{Punct}]+)の判定は個別にテストして動作したのですが、二つを組み合わせて書くようにするにはどのようにすればよいのでしょうか? 当然ですが、以下のように書くと文字列の全てがそれぞれ記号なのか、英数字なのかを判定してしまうためfalseを返してしまいます。 String str = "~!@#$%^&*()_+{}|:"<>?`-=[]\;',./1234567890abcdefgxyz"; System.out.println(str.matches("[\\p{Punct}]+") || str.matches("[0-9a-zA-Z]+")); 以上、宜しくお願いします。

    • ベストアンサー
    • Java
  • Perlの正規表現

    Perlの正規表現である文字列に文字列STRINGが含まれないようにするには ^(?!.*STRING).+$ と書くとググったら出てきました. ですが,?!について詳しいことまで書いてるサイトはありませんでした. ?!は具体的にはどのようなことをするのでしょうか?

  • 正規表現の検索について

    正規表現のエスケープしなければいけない文字が文字列に含まれているかどうかをチェックしたいのですがうまくいきません。 今は、下記のようにしてnoと表示されます。 よろしくお願いします。 String str ="(1)test"; Pattern p; Matcher m; p = Pattern.compile("\\(1\\)"); m = p.matcher(str); if(m.matches()) { System.out.println("ok"); }else{ System.out.println("no"); }

    • ベストアンサー
    • Java
このQ&Aのポイント
  • 上司との関係に不信感を抱いています。ボディタッチや高級レストランへの誘い、プレゼントの受け取りなど、その行動に疑念を抱くようになりました。
  • 上司は他の女性社員に対してはしないようなボディータッチや馴れ馴れしい態度をとり、信用ができなくなってしまったと感じています。
  • 上司の家庭内不和や女好き、仕事のテキトーさなど、人間的にも信頼できない部分があります。そのため、上司との関係を改善することは難しいかもしれません。
回答を見る