Serviceを読んで理解し、同意したものとみなします。すべて11正規表現の後読み、先読み中に量指定子は使えませんか?正規表現の実装によります。各種エンジンでlookbehindに量指定子が使えるかどうかは、次のドキュメントに簡潔にまとまっています。OnigumoおよびPerl5の実装では(今のところ)使えないということです。込み入った話をすると、「正規表現」というのはひとつの決まった定義があるわけではないので、「正規表現でこれはできますか?」という質問は「どの正規表現」かを言わないと曖昧です。二重に使わないとダメな理由[:space:]といった記法は「POSIX文字クラス」と呼びます。どちらも「文字クラス」という表現が入っているため、紛らわしいのですが、「文字クラス」の内容のひとつとして「POSIX文字クラス」を記述する、という形です。正規表現のリファレンスマニュアルで、「文字クラス」の副節として「POSIX文字クラス」があることに注意して下さい。そのため、文字クラス[...]の中に[:space:]を入れることで、[[:space:]]となるのです。POSIX文字クラスも、文字クラスの内容のひとつに過ぎないので、ひとつの文字クラスの中に、他の内容も混在させることができます。否定先読みアサーション(?!...)を使って、先に「0だけ」を除外するのはどうでしょうか。否定先読みは、ほとんどの処理系で使えると思います。Pythonで、次のようにテストしたらすべてあいました。Javaの場合も正規表現は同じです。先読みは、最近のプログラミング言語であれば同じように使えるはずです。切り捨てられるなら、以下のような形でオプションが付けられます。個の銅バッジ7正規表現の後読み、先読み中に量指定子は使えませんか?後読みはPOSIX標準ではカバーされていないのですべて各エンジンの拡張機能という扱いだと思います。functionって怒らっれる。この場合、regex_match()が完了した時点でstring("hahaha")のデストラクターが実行され文字列が解放されてしまいます。smの内容が不正になってしまいます。このような過ちを犯さないよう禁止されています。smよりも広いスコープで定義することをお勧めします。このパターンを使ってみてください。違いは単語境界(\b)を一つ加えただけです。?は「0個または1個」の意味なので、(\n|\r\n)?だけでは改行があっても無くてもよいことになり、改行なしで連続したアドレスにもマッチしてしまいます。いって(\n|\r\n)のようにアドレスの後の改行を必須にしてしまうと、angular.jsがtextareaの最後の改行を無視する関係上、正しい入力でもマッチしません。\b(\n|\r\n)?とすると行の終わりもしくは文字列の終わりにマッチするので正しく判定できます。使うと単語検索ができるようです。押すと前述のメタ文字を使って単語検索が行われます。検索文字列を省略して置換することで、今単語検索したものをそのまま置換できます。1文字目にも数字を許容してしまいますが、まあ多分問題ないように思います。個の銅バッジ6¥¥d.+?yenという正規表現の意味ご質問分に貼り付けられた¥¥は、また円記号になっていますので、実際に試される場合には\\の方を使ってください。(コピペすると文字化けしてしまったように見えることがありますが、慌てずに正しいほうを選んでください。nの8文字をJavaの正規表現エンジンに渡したことになります。正規表現でdigit、10進数の数字1文字にマッチします。正規表現で一番よく使うメタ文字ですが、改行以外(*)の任意の1文字にマッチします。量指定のメタ文字で「最短一致で1回以上」前の要素が繰り返されることを表します。ような日本語の文字範囲を使いたい手元の環境で試してみました。8.35にリンクしていますが、MINGW64ではPCREを使わず(たぶん)標準の正規表現エンジンを使用しています。あとはiconvまわりでしょうか...。s/^[あ-ゞ]+//gですと^行頭にマッチさせようとしています。ような日本語の文字範囲を使いたい環境変数LC_COLLATEにC.UTF-8を指定する事で解決しました。bashにも有効で、日本語の文字範囲を使えるようになりました。個の銅バッジ6英単語のアルファベットの間に半角スペースをいれたい。個の銅バッジ6正規表現で、特定の単語が複数回出現する文字列を抽出することは可能でしょうか。メソッドを使用したフィルタリングが高速でよいと思います。メソッドを使うと、文字列に含まれる、特定の文字列の数を数えることができます。以下にコードを載せておきます。["犬はよく泣いています。"その家の犬は良く吠える犬です。"その犬はご飯を食べました。いう表現がそもそもの問題がどこにあるかを正しく理解できていないことを示しています。bashももちろん正規表現を扱うことがありますが、今回は無関係です。今回、bashはgrepという外部プログラムを起動するだけです。grepとしても$は行末を表すメタ文字ですので、この機能をキャンセルするためには\でエスケープする必要があります。grepが受け取るべき引数文字列は\$です。次にbashにおいて、\はエスケープ記号、$は変数の接頭辞とどちらも特殊な機能を持つためそれぞれ\でエスケープする必要があります。この手のエスケープをエスケープしてわけがわからなくなることを傾斜爪楊枝症候群と呼ばれています。格納されるかと思います。個の銅バッジ5画像URL正規表現こういうことでしょうか。正規表現部分は流用なので改善の余地があると思います。個の銅バッジ5正規表現について教えて下さい。む)であるなら、正規表現そのものは、次でいけると思います。ちなみに、http(s)の部分をほんの少し厳密に、https?://として、://まで含めてもいいかもしれません。個の銅バッジ5変数名や関数名を変更した際、vimで置換する方法/\<n\>/のように\<と\>を使うと単語の区切りとして認識されます。正規表現で取り除く、ということでpreg_replaceを使うものと推察します。削除対象は文字列末尾の[と]で囲まれた文字列であると理解して、この場合は以下のような正規表現を用いて部分文字列を削除します。正規表現について一定程度知識をお持ちでしたらここは蛇足です。正規表現の構成は、まず[で始まる部分文字列の検索を開始し、[^\]*の部分で終了文字である]がみつかるまでマッチングを続けます。その後]が来れば部分文字列としてマッチします。個の銅バッジ5正規表現のエスケープが期待通りに動作しないおそらく¥記号のせいでしょう。本来の円記号であり、これはエスケープ記号としては働きません。SOLIDUS)\が異なる表示になるようにしてみてください。(U+005Cは歴史的な経緯で日本語のインストールされたマシンでは円記号のように表示されることが多いですが、Unicode的にはバックスラッシュでないといけません。メタキャラクタである\dと[0-9]は同じです。[0-9]のうちメタキャラクタは[と-と]です。[と]というメタキャラクタに挟まれている0-9は0123456789に展開され、いずれか一文字にマッチします。[及び]とか(及び)はあくまでも集合/グループを作ることを意味するだけで、その中身はリテラルやメタキャラクタで指定します。いうような区別をつけているのだと思います。ように範囲を表すときのみメタ文字として扱われます。先頭にあるときなど、範囲を表さないときはバックスラッシュによるエスケープ無しでも非メタ文字として扱われます。個の銅バッジ5正規表現で特定の記号に挟まれた語を抽出したい*3個を正規表現で表すと\*{3}です。1個以上の単語構成文字(下記参照)を正規表現で表すと\w+です。[0-9A-Za-z_]と同じであり、bregonig.dll使用時は2バイト文字も含みます。さんの正規表現が適切です。以下は囲まれた文字に*を含まない想定で記述した別解です。+の扱いMacのsedだと+が使えないか、別の表現が必要なようです。してGNUのsed(gsed)をインストールすると+が使えます。オプションを指定すれば、バックスラッシュでエスケープする必要はありません。仕事ということになっています。展開を行っているわけではありません。個の銅バッジ4かっこ`[]`で囲まれた文字以外をマッチさせたい先読みを利用すれば出来ると思います。マッチさせる箇所(A)を[^\[\]]+、させない箇所(B)を\[[^\[\]]+\]だとすると、先読みさせるにはA(?=B)、つまり[^\[\]]+(?=\[[^\[\]]+\])という形になります。