
No.2ベストアンサー
- 回答日時:
preg_match_all("/'([^'\\\\]|\\\\\\\\|\\\\')*?'/",$src,$matches);
まず、 " " で囲んだ文字列の中の ' はエスケープ不要です。
正規表現で、\ 自身を表すためには \\ とする必要がありますが、\\ を引用符で囲まれた文字列で表すためには、\\\\ と書きます。
同じように"で囲んだ正規表現で \\ という文字列を表すのは \\\\\\\\ となります。
上記は ' で以下のものを囲んだ文字列にマッチします。
(1) ' でも \ でも無い文字
(2) \\ で \ 自身を表す
(3) \' で ' を表す
分かり易くご説明いただきましてありがとうございます。
¥マークの羅列に一瞬びっくりしましたが、
そのような規則があるとは知りませんでした。
大変参考になりました。ありがとうございますm(_ _)m
No.1
- 回答日時:
シングルクォーテーションで囲まれた'You\'re pen'のような文字列にマッチするというだけなら、
preg_match_all("/'(.*)'/", $src, $matches);
preg_match_all("/'(.*?[^\\\\])?'/", $src, $matches);
などの様なものが考えられますが、正確な条件が分からないと答えられないかと。
下記のことはどうなりますでしょうか?
・\が前に付いたシングルクウォートはどう扱うか?
・取得したい文字列は一つか複数か?
・入力文字列に制限は有るか?
また、例えば、入力が「a\'b'c'd'e\'f'g\'h」でしたら、期待される結果はどうなりますか?
お礼遅くなり申し訳ありません。
ご回答いただきましてありがとうございます。
条件があいまいで大変お手数をおかけしてしまいました。
やりたいことは、PHPソース中のシングルクォートまたはダブルクォートで挟まれた文字列部分を全て抜き出すということでして、それは
$str = '123';
の'123'ようなものから、
$ary['abc']
の'abc'まで含みます。
ですので、a\'b'c'd'e\'f'g\'hといったケースは起こりえないという
ことになります。
初歩の初歩でつまずいておりましたので、まずは単純なご質問をさせていただきました。もし何かまたご意見いただけそうでしたらよろしくお願いしますm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現でシングルクォーテー...
-
正規表現で「0」のみ抽出
-
preg_matchで Warning: Undefin...
-
Smartyで部分一致
-
C#でのワイルドカードを使った...
-
preg_matchの正規表現で
-
、"(ダブルクォーテーション)...
-
正規表現の文字化け?で困って...
-
VBAのコマンドボタンの文字列の...
-
エスケープ文字の復帰(¥r)と...
-
ソースコードの1行が長いとき...
-
VBAでCSVをExcelに取り込む時に...
-
文字化け変換方法
-
エクセルのCOUNTIFが正しくカウ...
-
最終行の改行について
-
C++で空Enterの入力を判...
-
半角記号、全角記号を含む正規...
-
文字の入力で横バー上段、中断...
-
改行を読み飛ばす
-
COBOLの改行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
、"(ダブルクォーテーション)...
-
正規表現で、半角大文字と半角...
-
PHPで変数から1行目だけを取得...
-
PHPで<a>タグ内からURLと文字を...
-
携帯アドレスの正規表現
-
VBAを使ってHTMLソースから特定...
-
switchの大量分岐の高速化
-
正規表現について
-
preg_matchでエラーが出ます。
-
電話番号のチェック ハイフン...
-
変数に指定文字列が含まれると...
-
1ファイルから項目を正規表現で...
-
正規表現で「0」のみ抽出
-
複雑な/による文字列の分割につ...
-
サイトが移動しました(301)が...
-
Smartyで部分一致
-
PHPで あるフォルダ内の、特定...
-
PHPの正規表現について
-
Excelで数字のみを2倍3倍にする...
-
正規表現 先頭一桁をマッチさせ...
おすすめ情報