タグ

Regexpに関するouestのブックマーク (15)

  • grex - Generate regular expressions from test cases

    ouest
    ouest 2022/08/20
    Rust 製正規表現生成ツール grex の Web サービス
  • Regexp::AssembleのGo実装 rassemble-go を作りました - プログラムモグモグ

    PerlにはRegexp::Assembleという便利なライブラリがあります。 複数の正規表現を受け取り、それらのいずれかにマッチする正規表現を構築するためのライブラリです。 my $ra = Regexp::Assemble->new; $ra->add( 'ab+c' ); $ra->add( 'ab+\\d*\\s+c' ); $ra->add( 'a\\w+\\d+' ); $ra->add( 'a\\d+' ); print $ra->re; # prints (?:a(?:b+(?:\d*\s+)?c|(?:\w+)?\d+)) このライブラリのGo実装を金曜日の夜から書き始めて、ようやく形になってきたので公開しました。 package main import ( "fmt" "log" "github.com/itchyny/rassemble-go" ) func main

    Regexp::AssembleのGo実装 rassemble-go を作りました - プログラムモグモグ
  • 正規表現の先読み・後読みを極める!

    柔軟性の高い正規表現を書こうとすると、避けて通れないのが先読み・後読みです。 先読み・後読みに関して、いままではとりあえず的な理解をしていたのですが、それだと説明できない正規表現に遭遇したので、説明できるまで理解を深めてみました。 とりあえず的な理解 正規表現を使って間もない人が先読み・後読みを理解するための説明です。 肯定的先読み (?=pattern) 次の正規表現では直後に def がある abc(def は含まない)に一致します。

    正規表現の先読み・後読みを極める!
    ouest
    ouest 2017/09/04
  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

    正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/

  • Let's use the /x modifier! - Islands in the byte stream (legacy)

    Perl ベストプラクティス』はクセの強いではあるが、私のプログラミングスタイルが受けた影響は少なくない。なかでも、PBPによってPerlの正規表現の/x修飾子のすばらしさを知ったことは大きい。これはPBP以前は使おうと思ったことがなかったが、今となってはこれなしに複雑な正規表現を書こうとは思わない。 /x修飾子は、正規表現中の空白を無視し、コメントを入れられるようにするための修飾子だ*1。 以下の正規表現は、Text::Xslateから抜粋したものだ。 In Text/Xslate/Util.pm: our $NUMBER = qr/ (?: (?: [0-9][0-9_]* (?: \. [0-9_]+)? \b) # decimal | (?: 0 (?: (?: [0-7_]+ ) # octal | (?: x [0-9a-fA-F_]+) # hex | (?: b [01

    Let's use the /x modifier! - Islands in the byte stream (legacy)
  • ApacheのProxyPassディレクティブで正規表現 - 元RX-7乗りの適当な日々

    Apacheのmod_proxyで使えるProxyPassってディレクティブがあります。 http://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html 詳しい説明は、面倒くさいので省略しますが、リバースプロキシとして利用するときに、 ProxyPass /app http://192.168.1.100:3000 みたいな感じで、"/app"以下のアクセスは、全てバックエンドの"http://192.168.1.100:3000"に丸投げ、みたいな書き方をするのですが、このディレクティブで指定できるURLに今まで正規表現が使えなかったのですよorz ところが、2〜3ヶ月前にリリースされたApache2.2の最新版(2.2.6)では、ProxyPassMatchディレクティブが新しく追加されていて正規表現が使えるようになりました!(^^)/ *

    ApacheのProxyPassディレクティブで正規表現 - 元RX-7乗りの適当な日々
  • What I’ve found has never been enough@Hatena

  • perlの正規表現でUnicodeブロックを使う - (゚∀゚)o彡 sasata299's blog

    2009年03月13日07:07 Perl perlの正規表現でUnicodeブロックを使う 今日、Unicodeブロックというものを初めて知りました。正規表現で利用できます。 例えば、半角英数字もしくは半角記号かどうかをチェックするときには、このように書けるんです。 #!/usr/bin/perl use strict; use warnings; use utf8; use Encode qw(encode_utf8); my $str = "aあ-い0bc〜d9e"; for ($str =~ /./g) { if (/\p{InBasicLatin}/) { print encode_utf8("$_ is latin\n"); } else { print encode_utf8("$_ is not latin\n"); } } \p{InBasicLatin} の部分が半角英

  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • 404 Blog Not Found:perl - Regexp::Assembleのススメ

    2007年04月19日15:00 カテゴリLightweight Languages perl - Regexp::Assembleのススメ というわけで、Regexp::Assembleのご紹介。 PERL HACKS(日語版) [英語版] odz buffer - それ Regexp::Assembleん?ループ云々を抜きにして、こういうのは Regexp::Assemble の出番じゃないの? すでにPerl Hackers御用達のモジュールとなっていますが、まだ知らない方もいらっしゃるかも知れないので。 何をするモジュールか、といえば、以下を見れば一目瞭然でしょう。 Regexp::Assemble - Assemble multiple Regular Expressions into a single RE - search.cpan.org use Regexp::Asse

    404 Blog Not Found:perl - Regexp::Assembleのススメ
  • Regexp::Log::Common の使い方を覚えた - @kyanny's blog

    これでもう access_log をパースするときに正規表現をどう書くべきかで悩む必要がなくなった。 普通に LogFormat combined なファイルをパースするときはこれでいい。 my $foo = Regexp::Log::Common->new( format => ':extended', capture => [qw(host rfc authuser date request status bytes referer useragent)], ); my $re = $foo->regexp; my @fields = $foo->capture; while (<>) { my %data; @data{@fields} = /$re/; # do something } ちょっとカスタマイズされた場合もこんな風にして拡張が可能。 my $format = q[%ho

    Regexp::Log::Common の使い方を覚えた - @kyanny's blog
  • strfriend

    jokergaming สล็อตออนไลน์ที่มาแรงที่สุด เครดิตฟรี jokergaming สล็อตออนไลน์ที่มาแรงที่สุด เครดิตฟรี 100 ไม่ต้องฝาก ในวันนี้ทางเว็บไซต์ของเรา จะขอเสนอข้อมูล เกมสล็อตฟรีเครดิต 100 แบบไม่ต้องฝาก แบบไม่ต้องแชร์ เชื่อเลยว่า มันคือหนึ่งในคำถาม ที่นักพนันมือใหม่บนัสเครดิตฟรี จากเว็บตรงนั้น สามารถถอนได้จริง ๆ แล้ว โดยเรา ทำการสมัครสมาชิกกับเว็บ และเป็นการเปิดโอกาส ให้กับผู้เล่นใหม่ ๆ ได้เข้ามาทดลองเล่นเกม เ

  • 5 Regular Expressions Every Web Programmer Should Know - I’m Mike

    I’m going to assume you have a basic understanding of regular expressions at this point. If you’re a regex n00b (or /n0{2}b/, as I like to call them), or if you need a quick refresher, check out my previous post on the absolute bare minimum that every programmer should know about regular expressions. You won’t be disappointed. So, without further adu, here are the five regular expressions that I

    ouest
    ouest 2008/09/19
  • mregexp - MySQLで日本語の正規表現を扱う

    更新日: $Date: 2006-09-29 09:21:22 $ UTC ($Revision: 1.10 $) 公開日: 2004/04/13 目的 今のところ(mysql 4.0.27, 5.0.24a)、MySQLのネイティブ関数REGEXPは日語の文字列を正しく処理できません (一方、LIKEやSUBSTRINGなどは日語の処理に対応しています)。そこで日語をきちんと扱える正規表現関数、mregexpというものをユーザー定義関数(UDF=User Defined Function)という仕組みを用いて作りました。 機能 パターン'あ.う'が文字列'あいう'にマッチしません。 正規表現の「.」が、任意の1文字ではなく、任意の1バイトにマッチしてしまうからです。 ● LIKEは期待通り「あいう」がマッチするが、 mysql> SELECT * FROM regexp_test

  • perlre - Perlの正規表現

    NAME DESCRIPTION Regular Expressions Backtracking Version 8 Regular Expressions WARNING on \1 vs $1 Repeated patterns matching zero-length substring Creating custom RE engines SEE ALSO NAME perlre - Perlの正規表現 DESCRIPTION このページでは、Perlの正規表現の構文を説明します。マッチング演算 子中での正規表現の使い方や様々なサンプルについては、] perlopにあるm//、s/// qr//、?? を参照してください。 マッチング操作は様々な修飾子(modifier)を持つことができます。正規 表現中に置かれ、解釈される修飾子には以下のようなものがあります。 操作の振る舞いを

    ouest
    ouest 2006/02/18
    perlre - Perlの正規表現
  • 1