参照-この正規表現はどういう意味ですか?
これは何ですか?
これは一般的なQ&Aのコレクションです。これもコミュニティウィキなので、誰もがそれを維持するために参加するように招待されています。
どうしてこれなの?
正規表現は、説明のないzeコードタイプの質問と不十分な回答に苦しんでいます。このリファレンスは、質の高いQ&Aへのリンクを提供することを目的としています。
範囲は何ですか?
このリファレンスは、php、perl、javascript、python、ruby、java、.netの言語を対象としています。
これは広すぎるかもしれませんが、これらの言語は同じ構文を共有しています。特定の機能については、その背後にある言語のタグがあります。例:
- 正規表現バランシンググループとは何ですか?。ネット
回答
980 aliteralmind
スタックオーバーフローの正規表現に関するFAQ
正規表現 タグの詳細ページにある多くの一般的なヒントと役立つリンクも参照してください。
オンラインチュートリアル
定量化子
- ゼロ以上::
*
貪欲、*?
:気が進まない、*+
:所有格 - 1つ以上::
+
貪欲、+?
:気が進まない、++
:所有格 ?
:オプション(ゼロまたは1)- 最小/最大範囲(すべてを含む)::
{n,m}
nとmの間、{n,}
:n以上、{n}
:正確にn - 欲張り、嫌悪(別名「怠惰」、「貪欲」)と所有格数量詞の違い:
キャラクタークラス
- 角括弧と括弧の違いは何ですか?
[...]
:任意の1文字、[^...]
:否定/任意の文字以外[^]
改行 javascriptを含む任意の1文字に一致します[\w-[\d]]
/[a-z-[qz]]
:減算を設定します.net、xml-schema、xpath、JGSoft[\w&&[^\d]]
:セット交差点 ジャワ、ルビー1.9+[[:alpha:]]
:POSIX文字クラス- なぜ
[^\\D2]
、[^[^0-9]2]
、[^2[^0-9]]
Javaで異なる結果を得ますか? java - 速記:
- Unicodeカテゴリ(
\p{L}, \P{L}
など)
エスケープシーケンス
- 水平方向の空白::
\h
space-or-tab、\t
:tab - 改行:
- 否定された空白シーケンス::
\H
非水平空白文字、\V
:非垂直空白文字、\N
:非改行文字 pcre php5 java-8 - その他::
\v
垂直タブ、\e
:エスケープ文字
アンカー
^
:行/入力の開始、\b
:単語の境界、および\B
:単語以外の境界、$
:行/入力の終了\A
:入力の開始、\Z
:入力の終了 php、perl、ruby\z
:入力の最後(\Z
Pythonの場合).net、php、pcre、java、ruby、icu、swift、objective-c\G
:試合の開始 php、perl、ruby
(「フレーバー固有の情報→Java→の機能」も参照してくださいMatcher
)
グループ
(...)
:キャプチャグループ、(?:)
:非キャプチャグループ\1
:backreferenceおよびcapture-group reference、$1
:capture group reference- サブパターンとは
(?i:regex)
どういう意味ですか? - 「P」は
(?P<group_name>regexp)
どういう意味ですか? (?>)
:アトミックグループまたは独立グループ、(?|)
:ブランチリセット- 名前付きキャプチャグループ:
- 一般的な名前付きキャプチャグループリファレンス
regular-expressions.info
- Javaの:
(?<groupname>regex)
:概要と命名規則 (ノンスタックオーバーフローリンク) - その他の言語:python、.net、perl、およびphp
(?P<groupname>regex)
(?<groupname>regex)
(?<groupname>regex)
(?P<groupname>regex)
(?<groupname>regex)
- 一般的な名前付きキャプチャグループリファレンス
ルックアラウンド
- 先読み::
(?=...)
正、(?!...)
:負 - ルックビハインド::
(?<=...)
positive、(?<!...)
:negative(javascriptではサポートされていません) - 制限の裏側:
- 代替案の裏側:
修飾子
- ほとんどのフレーバー::
g
global、i
:case-insensitive、u
:unicode、x
:whitespace-extended c
:現在の位置 perle
:expression php perlo
:once rubym
:multiline php perl python javascript .net java、m
:( non)multiline rubys
:1行(javascriptまたはrubyではサポートされていません)、s
回避策 javascriptS
:study phpU
:ungreedy php r- preg_replace eをpreg_replace_callbackに変換する方法は?
- インライン修飾子とは何ですか?
- Ruby正規表現の「?-mix」とは何ですか
その他:
|
:代替(OR)演算子、.
:任意の文字、[.]
:リテラルドット文字- どの特殊文字をエスケープする必要がありますか?
- コントロール動詞(PHPやperlの): 、、および
(*PRUNE)
(*SKIP)
(*FAIL)
(*F)
- 再帰(PHPやperlの):
(?R)
、(?0)
および(?1)
、(?-1)
、(?&groupname)
一般的なタスク
- 2つの中括弧の間に文字列を取得します。
{...}
- 状況s1、s2、s3 ..を除いて、パターンを一致(または置換)します。
- 正規表現を使用して文字列内のすべてのYouTubeビデオIDを見つけるにはどうすればよいですか?
- 検証:
高度な正規表現-Fu
- 文字列と数字:
- その他:
フレーバー固有の情報
(でマークされているものを除いて*
、このセクションには非スタックオーバーフローリンクが含まれています。)
- Java
- 公式ドキュメント:Pattern Javadoc、Oracleの正規表現チュートリアル
- の関数間の違い
java.util.regex.Matcher
:matches()
):一致はinput-startと-endの両方に固定する必要がありますfind()
):一致は入力文字列(部分文字列)のどこにあってもかまいませんlookingAt()
:一致は入力開始のみに固定する必要があります- (一般的なアンカーについては、「アンカー」のセクションを参照してください)
- 唯一の
java.lang.String
正規表現を受け入れる機能:matches(s)
、replaceAll(s,s)
、replaceFirst(s,s)
、split(s)
、split(s,i)
- *の機能の欠点と欠落している機能の(意見と)詳細な議論
java.util.regex
- 。ネット
- 公式ドキュメント:
- Boost正規表現エンジン:一般的な構文、Perl構文 (TextPad、Sublime Text、UltraEdit、... ???で使用)
- JavaScript1.5の一般情報とRegExpオブジェクト
- .NET
- PHP:パターン構文、
preg_match
- Python:正規表現操作、
search
vsmatch
、ハウツー - Splunk:正規表現の用語と構文および正規表現コマンド
- Tcl:正規表現構文、マンページ、
regexp
コマンド - VisualStudioの検索と置換
一般情報
(でマークされたリンク*
は非スタックオーバーフローリンクです。)
- その他の一般的なドキュメントリソース:正規表現の学習、* Regular-expressions.info、* Wikipediaエントリ、* RexEgg、Open-Directory Project
- DFAとNFA
- 正規表現に一致する文字列を生成する
- 書籍:ジェフリー・フリードルの定期的な表現の習得
- 正規表現を使用しない場合:
- 問題に直面したときに、「わかっている、正規表現を使用する」と考える人もいます。今、彼らは2つの問題を抱えています。( Stack Overflowの創設者によって書かれたブログ投稿)*
- HTMLの解析に正規表現を使用しないでください。
- しないでください。
- まあ、多分...あなたが本当に決心しているなら(この質問の他の答えも良いです)
- しないでください。
正規表現エンジンの障害を引き起こす可能性のある正規表現の例
ツール:テスターと説明者
(このセクションには、Stack Overflow以外のリンクが含まれています。)
オンライン(*交換用テスターを含む、+分割テスターを含む):
- Debuggex(便利な正規表現のリポジトリもあります)javascript、python、pcre
- *正規表現 101php、pcre、python、javascript
- Regex Pal、regular-expressions.info javascript
- Rubular ルビー
- * + regexstorm.net .net
- * RegexPlanet:ジャワ ジャワ、囲碁 、外出先、Haskellの ハスケル、JavaScriptの ジャバスクリプト、.NET DOTNET、Perlの Perlの PHPの PCRE PHP、Pythonの Pythonの、ルビー ルビー、XRegExp xregexp
freeformatter.com
xregexp- * + php PCREおよびPOSIX、javascript
regex.larsolavtorvik.com
- Refiddle javascript ruby .net
オフライン:
- Microsoft Windows:RegexBuddy(分析)、RegexMagic(作成)、Expresso(分析、作成、無料)