タグ

正規表現に関するtekimenのブックマーク (6)

  • はじめに - 作って学ぶ正規表現エンジン

    はじめに 正規表現は様々なプログラミング言語で利用されている、テキスト処理のためのパターン言語です。 正規表現はテキストエディタでの検索や置換、入力文字列のバリデーションなどプログラミングの様々な分野で実用されています。 ある程度の規模のプログラムにおいて、正規表現を全く利用しない (利用していない) ということはほとんど無く、正規表現は今日のプログラミングにおいて非常に重要なパーツだと言えます。 JavaScriptRubyといったプログラミング言語では正規表現はファーストクラスのリテラルとして実装されているため、とても簡単に利用できます。 例えば次のRubyプログラミングでは変数fooに入った文字列の部分にfizzかbuzzが含まれるかどうかを、正規表現/fizz|buzz/を使ってチェックしています。 foo =~ /fizz|buzz/ さらに、計算機科学 (コンピューターサイエ

  • pcrepattern specification

    pcrepattern man page Return to the PCRE index page. This page is part of the PCRE HTML documentation. It was generated automatically from the original man page. If there is any nonsense in it, please consult the man page, in case the conversion went wrong. PCRE REGULAR EXPRESSION DETAILS SPECIAL START-OF-PATTERN ITEMS EBCDIC CHARACTER CODES CHARACTERS AND METACHARACTERS BACKSLASH CIRCUMFLEX AND DO

  • pcre2syntax specification

  • アイヌ語仮名「ㇷ゚」に対する正規表現の罠

    導入 アイヌ語は日語と異なり、閉音節(子音で終わる音節)も存在するので、表記の際音素文字であるラテン文字なら、そのまま p, t, k, m, n, s, r などの子音文字を後ろの付ければ良いわけなので、アイヌ語ローマ字表記では、何も問題が生じない。しかし、元々開音節言語である日語に特化したカタカナのような仮名文字で表記する際、鼻音 n は「ン」でなんとかなる(実はそれでもまずい事になっているけどここでは割愛する)が、p, t, k, m, n, s, r, h はどうしようもないので、特殊の捨て仮名(小書き仮名文字)を利用することになっている。 具体的には以下のような特殊仮名文字(通称 アイヌ語仮名)である。 ㇷ゚ -p ッ -t ㇰ -k ㇺ -m ㇱ -s ㇻ -(a)r, ㇼ -(i)r, ㇽ -(u)r, ㇾ -(e)r, ㇿ -(o)r お分かり頂けただろうか… 問題 r

    アイヌ語仮名「ㇷ゚」に対する正規表現の罠
  • Masato Kinugawa Security Blog: ユーザ入力を使った正規表現から生じるDOM based XSS

    お久しぶりです&あけましておめでとうございます。昨年はブログを書く時間をうまく作ることができず、あまり記事を書けませんでした。今年はできるだけ月に1回程度何か書いていきたいと思っています。今年もよろしくお願いします! さて、ブログを書かなかった間にXSSからSQLインジェクションへ興味が移った、なんてことはありませんでしたので、今日もいつも通り大好きなXSSの話をしたいと思います! 最近、正規表現にユーザ入力を使っていることに起因するDOM based XSSに連続して遭遇しました。あまり見慣れていない注意が必要な問題だと思うので、この記事では、見つけたもの2つがどのように生じたか、また、問題を起こさないためにどうすればよいかを紹介します。 そのうちの1つはLINEのBug Bounty Programを通じて報告した問題です。 賞金と、"LINE SECURITY BUG BOUNTY"

  • PHPでISO8061に準拠した日付フォーマットをバリデーションする - はらへり日記

    この記事は PHPアドベントカレンダー13日目の記事です。大遅刻ですごめんなさい。 qiita.com 正直、なぜか投稿した気になってしまってました…ちゃんとやらなきゃダメですよね気をつけます…。 したいこと すいません。タイトルちょっと厳密に言うと違います。もっというとPHP関係ないかもしれない。 厳密には「ISO8061に従い、かつ年月日秒とタイムゾーンまで指定されているかどうか」バリデーションする方法です。 例えば以下のような書式はISO8061に準拠、かつ上記条件を満たしています。 2016-09-30T12:00:00+09:00 ですが、以下の書式はISO8061に準拠しながらも分秒数は指定されていません。 2016-09-30 とある実装で、分秒数まで指定された状態のバリデーションをかけたい場面があったのでどう実現するか考えました。 ※ 今後、「ISO8061に従い、かつ年月

    tekimen
    tekimen 2016/12/24
    PHPのstrtotimeのみに限っていえば、strtotimeという関数はDSLとしてre2c噛ませているほどなので、「文字列中の時刻にタイムゾーン情報があるかどうか」は指摘通り正規表現で必要な部分を抜き取るしかなさそう…
  • 1