タグ

regexpに関するnobusueのブックマーク (6)

  • RegExr: Learn, Build, & Test RegEx

    RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp). Supports JavaScript & PHP/PCRE RegEx. Results update in real-time as you type. Roll over a match or expression for details. Validate patterns with suites of Tests. Save & share expressions with others. Use Tools to explore your results. Full RegEx Reference with help & examples. Undo & Redo with {{getCtrlKey()}}

    RegExr: Learn, Build, & Test RegEx
    nobusue
    nobusue 2014/04/07
    オンライン学習
  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

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

  • [Bash]正規表現マッチした部分文字列を再利用する方法 · DQNEO日記

    Bashでは正規表現マッチを使ってマッチした部分文字列を再利用することができます。 つまり文字列の加工を自由自在にすることができます。 例:"foo_bar"から"foo"や"bar"を取り出したい [[ "foo_bar" =~ ^(*)_(*)$ ]] ここでマッチした部分文字列は、BASH_REMATCHという配列に格納されています。 # マッチした全体を参照したい場合 TOTAL=${BASH_REMATCH[0]} echo $TOTAL # => foo_bar # ()でマッチした部分文字列を取り出したい場合 LEFT=${BASH_REMATCH[1]} echo $LEFT # => foo シェルスクリプトで書くなら下記ような感じで。 #!/bin/bash if [[ "foo_bar" =~ ^(.+)_(.+)$ ]] ; then echo ${BASH_REM

  • Re:Re:改行を含むとGroovyの正規表現がうまく動かない - mtoyoshi開発メモ

    僕が以前書いた 改行を含むとGroovyの正規表現がうまく動かない に対して、 Re:改行を含むとGroovyの正規表現がうまく動かない をid:fumokmmさんにトラックバックいただき教えてもらいました。多謝! 解決策としては、 def text3 = '''a=b hello c=d''' assert text3 ==~ /a=(.|\n)*/ もしくは、 import java.util.regex.* def text4 = '''a=b hello c=d''' assert Pattern.compile(/a=.*/, Pattern.DOTALL).matcher(text4).matches() というものでした。すっきりするのは上のほうなんですが、正確には下だよなぁ。でもgroovyならではのシンプルさが失われ、いかにもJavaのコードという感が露呈しています。id

    Re:Re:改行を含むとGroovyの正規表現がうまく動かない - mtoyoshi開発メモ
    nobusue
    nobusue 2013/11/14
    Pattern.DOTALLを埋め込みフラグで指定する方法
  • 正規表現サンプル(最短一致について)

    「.*」や「.+」を使うと、限りなく連続した文字を表します。 これは非常に便利なのですが、予想以上に長くマッチして、思ったように動かないことがあります。 これを解決するためには「?」を付加して最短一致するように仕向ける方法があります。 また、ここで説明する「?」は「直前の文字の0回または1回に一致」とは違います。 文字は同じですが、まったくの別物です。(記述する位置で見分けてください。) たとえば、HTMLのタグを消す場合、このように書いたとします。(Perlの置換文法) s/<.+>//g これでタグは消えるのですが、タグだけではなく、タグに挟まれた間の文字まで消してしまいます。(下線部分) <P>abc</P> 理由は最長一致モードで動作しているからです。 動作をみると、途中に「>」が出てきているのですが、そこでは止まらず、最後の「>」までマッチしていま

  • situs informasi perjudian online

    situs informasi perjudian online informasi perjudian online yang memberikan rifrensi atau wawasan dalam bermain The term 여성알바 구인구직 shiftwork applies to any timetable that falls beyond the long periods of 7:00 a.m. to 6:00 p.m. As per the U.S. Department of Work Measurements, around 16% of salaried and blue collar laborers are on a shift plan. While certain representatives like pulling all nighters

  • 1