Yuanzi に来る前に私が書いた正規表現チュートリアル。codeproject による The 30 Minute Regex Tutorial から部分的に翻訳されました。
コメント内のURLが長いため、このページのレイアウトは少しわかりにくくなっています。読んだ後に質問がある場合は、ここで質問してください。 一言:
正規表現の基本的な知識がない場合は、「ステップバイステップ」チュートリアルに従ってください。ざっと見ただけで理解できないとは言わないでください。このような態度では私が何を書いているのか理解できません。これは「30 分のチュートリアル」です。30 秒で始めようとしないでください。
-
実際、私の隣には、コンピュータに触れたばかりで操作にあまり習熟していない人が、このチュートリアルを独学で学習した後、記事収集システムで正規表現を使用してタスクを完了できるようになりました。 。さらに、彼が書いた表現には、「ゼロ幅アサーション」などの「高度な」テクニックも使用されていました。
したがって、問題について具体的に教えていただければ、喜んでお手伝いさせていただきます。しかし、一言で理解できないとしても、それは私の問題ではありません。
転載は歓迎ですが、作者と出典を明記してください。 - 正規表現に関する 30 分の入門チュートリアル
バージョン: v2.31 (2009-4-11) 作者: deerchao 転載の際は出典を明記してください
目次
目次をスキップ
この記事の目的
- このチュートリアルの使用方法
- 正規表現とは何ですか?
- はじめに
- 正規表現をテストする
- メタキャラクター
- キャラクターエスケープ
- 繰り返し
- キャラクタークラス
- 分岐条件
- 対義語
- グループ
- バックリファレンス
- ゼロ幅アサーション
- 負のゼロ幅アサーション
- メモ
- 貪欲と怠惰
- 処理オプション
- バランスのとれたグループ/再帰的マッチング
- 他にも触れていないことがあります
- 著者に連絡する
- この記事のオンライン リソースと参考文献
- 記録を更新
- この記事の目的
30 分で、正規表現とは何かを理解し、その基本をある程度理解して、独自のプログラムや Web ページで正規表現を使用できるようになります。
このチュートリアルの使用方法
最も重要なことは、
30 分ください。正規表現の経験がない場合は、30 秒で始めようとしないでください - 超人でない限り :) 以下の複雑な式に怖がらないでください。ステップバイステップで説明していけば、正規表現は実際には
思っているほど難しくないことがわかるでしょう。もちろん、このチュートリアルを読んだ後、多くのことは理解できても、ほとんど何も思い出せなかったとしても、それは正常です。これまで正規表現に触れたことのない人でも、このチュートリアルを読んだ後はかなりのことを理解できるようになると思います。チュートリアルでは、記載された文法を 80% 以上覚えられる可能性はゼロです。これは基本原則を理解していただくためのものであり、正規表現を上手にマスターするには、今後さらに練習して使用する必要があります。この記事は、入門チュートリアルであるだけでなく、日常業務で使用できる正規表現構文のリファレンス マニュアルとしても機能します。著者自身の経験に関する限り、この目標はうまく達成されました。ご存知のとおり、すべてを自分で書き留めることはできませんね。
明確な形式 テキスト形式の規則:専門用語
メタ文字/文法形式 正規表現 正規表現の一部 (分析に使用) 一致するソース文字列 正規表現 数式またはその一部の説明 サイドノートを非表示にする この記事の右側にいくつかのメモがあります。これらは主に、プログラマーの経験がない読者に関連情報を提供したり、基本的な概念を説明したりするために使用され、通常は無視してかまいません。
正規表現とは何ですか?
文字
は、コンピューター ソフトウェアが文字、数字、句読点、スペース、改行、漢字などのテキストを処理する際の最も基本的な単位です。String は 0 個以上の文字のシーケンスです。 Textはテキスト、文字列です。特定の文字列 が特定の正規表現 に一致すると言うことは、通常、文字列の一部 (またはいくつかの部分) がその式で指定された条件を満たすことができることを意味します。 文字列を処理するプログラムや Web ページを作成する場合、特定の複雑なルールに一致する文字列を検索する必要があることがよくあります。 正規表現
は、これらのルールを記述するために使用されるツールです。言い換えれば、正規表現はテキスト ルールを記録するコードです。Windows/Dos でのファイル検索に ワイルドカード、つまり * と ? を使用した可能性が非常に高いです。特定のディレクトリ内のすべての Word ドキュメントを検索したい場合は、*.doc を検索します。ここで、 * は任意の文字列として解釈されます。ワイルドカードと同様に、正規表現もテキストの一致に使用されるツールですが、ワイルドカードよりもニーズを正確に記述することができます。もちろん、複雑になりますが、たとえば、 の検索に使用される正規表現を作成できます。すべての文字列は 0 で始まり、その後に 2 ~ 3 桁、次にハイフン「-」、そして最後に 7 桁または 8 桁の ( 010-12345678 や 0376-7654321 など)。
はじめに
正規表現を学習する最良の方法は、例を理解した後、自分で変更して実験することです。以下にいくつかの簡単な例を示し、詳細に説明します。
英語の小説で hi を検索すると仮定すると、正規表現 hi を使用できます。
これは、ほぼ最も単純な正規表現で、次のような文字列と正確に一致します。 は 2 つの文字で構成され、最初の文字は h で、次の文字は i です。通常、正規表現を処理するツールには、大文字と小文字を無視するオプションが用意されており、このオプションが選択されている場合は、 hi、HI、Hi、hI のいずれかのケースに一致します。
残念ながら、him、history、highなど、多くの単語に 2 つの連続した文字 hi が含まれています。 hiで検索すると中のhiも見つかります。 単語 こんにちは を正確に見つけたい場合、bhib を使用する必要があります。
bとは、正規表現で指定される特殊なコード(メタキャラクター、メタキャラクターと呼ぶ人もいますね)で、単語の境界である単語の始まりや終わりを表します。通常、英語の単語はスペース、句読点、または改行で区切られますが、b はこれらの単語区切り文字のいずれにも一致せず、 1 つの位置 にのみ一致します。 より正確にする必要がある場合、
bは、前後の文字が両方とも一致しない位置 (1 つは存在する、もう 1 つは存在しない、または存在しない) w と一致します。 探しているものが
hiの後にLucyが続く場合は、bhib.*bLucybを使用する必要があります。 ここで、
.は別のメタキャラクターであり、改行文字を除く任意の文字に一致します。 * もメタキャラクターですが、文字や位置を表すのではなく、量を表します。これは、式全体を一致させるために、* より前の内容を何度でも再利用できることを指定します。したがって、.* を組み合わせると、改行を含まない 任意の数の文字 を意味します。これで、bhib.*bLucyb の意味は明らかです。最初に単語 hi、次に任意の数の文字 (ただし改行は不可)、そして最後に単語 Lucy があります。 改行文字は「n」、ASCII エンコーディングが 10 (16 進数の 0x0A) である文字です。
他のメタキャラクターを同時に使用すると、より強力な正規表現を構築できます。たとえば、次の例:
0dd-dddddddd
は次のような文字列と一致します:0 で始まり、次に 2 桁、次にハイフン "-"、最後に 8 桁 (つまり、中国の電話番号。もちろん、この例では市外局番が 3 桁の場合に一致します)。 ここで d
は、1 桁 (0、または 1、または 2、または...) に一致する新しいメタキャラクターです。 - はメタキャラクターではなく、それ自体、つまりハイフン (またはマイナス記号、ハイフン、または任意の名前) にのみ一致します。 煩わしい繰り返しを避けるために、この式を次のように書くこともできます: 0d{2}-d{8}
。 ここで、dの後の{2}({8})は、前のdを2回(8回)繰り返して一致させる必要があることを意味します。 正規表現をテストする
その他の利用可能なテストツール:
- 正規表現バディ
- JavaScript正規表現オンラインテストツール
正規表現の読み書きが難しくないと感じたら、あなたは天才か、地球人ではないかのどちらかです。正規表現の構文は、定期的に使用している人であっても混乱を招く可能性があります。正規表現は読み書きが難しく、エラーが発生しやすいため、正規表現をテストするツールを見つける必要があります。
正規表現の詳細は、環境によって異なります。このチュートリアルでは、Microsoft .Net Framework 4.0 での正規表現の動作を紹介します。そのため、私が作成した .Net での正規表現ツールをお勧めします。ソフトウェアをインストールして実行するには、このページの手順を参照してください。
以下は、実行中の Regex Tester のスクリーンショットです:
メタキャラクター
これで、b、.、*、d などのいくつかの便利なメタキャラクターがわかりました。smatch スペースを含む任意の空白文字など、正規表現にはさらに多くのメタキャラクターがあります。 、タブ、改行、中国語の全角スペースなど。 w文字、数字、アンダースコア、漢字などと一致します。
中国語/漢字の特殊処理は、.Net が提供する正規表現エンジンによってサポートされています。その他の環境での詳細については、関連ドキュメントを確認してください。以下のその他の例を参照してください:
baw*b は、文字 a で始まる の単語と一致します - 最初に単語の先頭 (b)、次に文字 a、次に任意の数の文字または数字 (w* ) 、そして最後に語尾(b)。
それでは、正規表現内の単語の意味について話しましょう: 少なくとも 1 つの連続したw。はい、これは英語を学ぶときに覚えなければならない同じ名前の何千ものこととは何の関係もありません:)
d+は 1 つ以上の連続する数字と一致します。ここで + は * に似たメタキャラクターですが、* は任意の回数 (おそらく 0 回) 繰り返された に一致するのに対し、+ は 1 回以上繰り返された に一致する点が異なります。 bw{6}b
は、正確に 6 文字の単語 に一致します。 表 1. 一般的に使用されるメタキャラクター
改行文字を除く任意の文字と一致します | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
文字、数字、アンダースコア、または漢字と一致します | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
任意の空白文字と一致します | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
数字を一致させる | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
単語の先頭または末尾を一致させます | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
文字列の先頭と一致します | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
文字列の末尾を一致させます |
ゼロ回以上繰り返します | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1回以上繰り返します | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ゼロ回または 1 回繰り返します | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
n回繰り返します | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
n回以上繰り返します | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
n回からm回繰り返します |
手順 | ||
---|---|---|
W | 文字、数字、アンダースコア、または漢字以外の任意の文字と一致します | |
S | 空白以外の任意の文字と一致します | |
D | 数字以外の文字と一致します | |
B | 単語の先頭または末尾ではない位置と一致します | |
[^x] | x を除く任意の文字と一致します | |
[^アイオウ] | aeiou の文字を除く任意の文字と一致します |
コード/構文 | 説明 | |
---|---|---|
(経験値) | 経験値を照合し、テキストを自動的に名前が付けられたグループにキャプチャします | |
(?経験値) |
exp を照合し、テキストを name という名前のグループにキャプチャします。(?'name'exp) と書くこともできます。 | |
(?:exp) | 式を一致させ、一致するテキストをキャプチャせず、このグループにグループ番号を割り当てません | |
(?=exp) | expの前の位置と一致させます | |
(? | expの後ろの位置と一致させます | |
(?!経験値) | expが続かない位置を一致させます | |
(? | exp ではない前の位置と一致します | |
(?#コメント) | このタイプのグループ化は正規表現の処理には影響せず、人々が読むためのコメントを提供するために使用されます |
代码/语法 | 说明 |
---|---|
*? | 重复任意次,但尽可能少重复 |
+? | 重复1次或更多次,但尽可能少重复 |
?? | 重复0次或1次,但尽可能少重复 |
{n,m}? | 重复n到m次,但尽可能少重复 |
{n,}? | 重复n次以上,但尽可能少重复 |
処理オプション
C# では、Regex(String, RegexOptions) コンストラクターを使用して正規表現処理オプションを設定できます。例: Regex regex = new Regex(@"baw{6}b", RegexOptions.IgnoreCase);
大文字小文字の無視、複数行の処理など、いくつかのオプションが上で紹介されています。これらのオプションは、正規表現の処理方法を変更するために使用できます。以下は、.Net で一般的に使用される正規表現オプションです:
名前 | 説明 |
---|---|
IgnoreCase(大文字と小文字を無視) | マッチングでは大文字と小文字は区別されません。 |
マルチライン(マルチラインモード) | ^ と $ の意味を、文字列全体の先頭と末尾だけではなく、任意の行の先頭と末尾でそれぞれ一致するように変更します。 (このモードでは、$ の正確な意味は、n の前の位置と文字列の終わりの前の位置を一致させることです。) |
シングルライン(シングルラインモード) | すべての文字 (改行 n を含む) と一致するように . の意味を変更します。 |
IgnorePatternWhitespace(空白を無視) | 式内のエスケープされていない空白を無視し、#でマークされたコメントを有効にします。 |
ExplicitCapture(明示的キャプチャ) | 明示的に名前が付けられたグループのみをキャプチャします。 |
一个经常被问到的问题是:是不是只能同时使用多行模式和单行模式中的一种?答案是:不是。这两个选项之间没有任何关系,除了它们的名字比较相似(以至于让人感到疑惑)以外。
平衡组/递归匹配
这里介绍的平衡组语法是由.Net Framework支持的;其它语言/库不一定支持这种功能,或者支持此功能但需要使用不同的语法。
有时我们需要匹配像( 100 * ( 50 + 15 ) )这样的可嵌套的层次性结构,这时简单地使用\(.+\)则只会匹配到最左边的左括号和最右边的右括号之间的内容(这里我们讨论的是贪婪模式,懒惰模式也有下面的问题)。假如原来的字符串里的左括号和右括号出现的次数不相等,比如( 5 / ( 3 + 2 ) ) ),那我们的匹配结果里两者的个数也不会相等。有没有办法在这样的字符串里匹配到最长的,配对的括号之间的内容呢?
为了避免(和\(把你的大脑彻底搞糊涂,我们还是用尖括号代替圆括号吧。现在我们的问题变成了如何把xx
这里需要用到以下的语法构造:
- (?'group') 把捕获的内容命名为group,并压入堆栈(Stack)
- (?'-group') 从堆栈上弹出最后压入堆栈的名为group的捕获内容,如果堆栈本来为空,则本分组的匹配失败
- (?(group)yes|no) 如果堆栈上存在以名为group的捕获内容的话,继续匹配yes部分的表达式,否则继续匹配no部分
- (?!) 零宽负向先行断言,由于没有后缀表达式,试图匹配总是失败
如果你不是一个程序员(或者你自称程序员但是不知道堆栈是什么东西),你就这样理解上面的三种语法吧:第一个就是在黑板上写一个"group",第二个就是从黑板上擦掉一个"group",第三个就是看黑板上写的还有没有"group",如果有就继续匹配yes部分,否则就匹配no部分。
我们需要做的是每碰到了左括号,就在压入一个"Open",每碰到一个右括号,就弹出一个,到了最后就看看堆栈是否为空--如果不为空那就证明左括号比右括号多,那匹配就应该失败。正则表达式引擎会进行回溯(放弃最前面或最后面的一些字符),尽量使整个表达式得到匹配。
< #最外层的左括号 [^<>]* #最外层的左括号后面的不是括号的内容 ( ( (?'Open'<) #碰到了左括号,在黑板上写一个"Open" [^<>]* #匹配左括号后面的不是括号的内容 )+ ( (?'-Open'>) #碰到了右括号,擦掉一个"Open" [^<>]* #匹配右括号后面不是括号的内容 )+ )* (?(Open)(?!)) #在遇到最外层的右括号前面,判断黑板上还有没有没擦掉的"Open";如果还有,则匹配失败 > #最外层的右括号
平衡组的一个最常见的应用就是匹配HTML,下面这个例子可以匹配嵌套的 正規表現を構築するための多数の要素については上で説明しましたが、まだ言及されていないことがたくさんあります。以下に、言及されていないいくつかの要素のリストを、構文と簡単な説明とともに示します。必要に応じて、より詳細なリファレンスをオンラインで見つけて学習することができます。 MSDN ライブラリをインストールしている場合は、.net で正規表現に関する詳細なドキュメントを見つけることもできます。 ここでの紹介は非常に簡単です。さらに詳細な情報が必要で、コンピューターに MSDN ライブラリがインストールされていない場合は、正規表現言語要素に関する MSDN オンライン ドキュメントを参照してください。 わかりました、私はあなたに嘘をつきました、あなたはこれを読むのに 30 分以上かかったはずです、信じてください、これは私のせいです、あなたがあまりにも愚かだからではありません。自信と忍耐を持って続けてください。これを見たということは、私の陰謀が成功したことを証明しています。騙されるのは気分が良いですよね? 私について文句を言いたい場合、または私が実際にもっとうまくチートできると思う場合は、 この記事のオンライン リソースと参考文献
他にも言及していないことがあります
コード/構文
手順
あ
アラーム文字 (印刷の効果はコンピューターからのビープ音です)
b
は通常単語の境界位置ですが、文字クラスで使用される場合はバックスペースを表します
t
タブ、タブ
r
入力
v
垂直タブ文字
f
ページフィード
ん
改行
え
脱出
ASCIIコードの8進数コードがnnである文字
xnn
ASCIIコードの16進数コードがnnである文字
うんうん
Unicodeコードの16進数コードがnnnnである文字
cN
ASCII 制御文字。たとえば、cC は Ctrl+C を表します
A
文字列の開始 (^ に似ていますが、複数行のオプションの処理には影響を受けません)
Z
文字列の終わりまたは行の終わり (複数行のオプションの処理には影響を受けません)
z
文字列の終わり ($ に似ていますが、複数行のオプションの処理には影響を受けません)
G
現在の検索の開始
p{名前}
Unicode の name という名前の文字クラス (p{IsGreek} など)
(?>exp)
貪欲な部分表現
(?
-exp) バランスセット
(?im-nsx:exp)
部分式expの処理オプションを変更する
(?im-nsx)
式の残りの部分の処理オプションを変更します
(?(exp)はい|いいえ)
exp をゼロ幅の前方先読みアサーションとして扱います。この位置で一致する場合は、このグループの式として yes を使用します。それ以外の場合は、no を使用します。
(?(exp)はい)
上記と同じ、空の式を no として使用するだけです
(?(名前)はい|いいえ)
name という名前のグループがコンテンツをキャプチャする場合は、式として yes を使用します。それ以外の場合は、no を使用します
(?(名前)はい)
上記と同じ、空の式を no として使用するだけです
著者に連絡する
私の Weibo へようこそ。正規表現について質問がある場合は、
stackoverflow Web サイトで質問できます。忘れずに regex タグを追加してください。中国語でのコミュニケーションに慣れている場合は、#正正# タグを使用して Weibo で質問することができます。
Microsoft 正規表現チュートリアル
記録を更新
2006-3-27 初版
いくつかの詳細なエラーと不正確さを修正しました
いくつかの小さなバグを修正しました
ゼロ幅アサーションの再構成された入門
いくつかのテキストエラーを修正しました
一部の章の順序を調整しました
いくつかのテキストエラーを修正しました
ツールの紹介を変更し、自社開発の正規表現テスターに置き換えました

随着互联网技术的不断发展,Web开发技术也在不断更新迭代。PHP作为一种开源的编程语言,在Web开发中拥有广泛的应用。而PHP框架作为PHP开发中常用的工具之一,能够提高开发效率和代码质量。本文将为大家介绍一个PHP框架——CakePHP,并提供一些简单入门的教程。一、什么是CakePHP?CakePHP是一个基于MVC(Model-View-Control

两种去除方法:1、利用preg_replace()执行正则表达式搜索所有大写字母并将其替换为空字符即可,语法“preg_replace('/[A-Z]/','',$str)”。2、利用preg_filter()执行正则表达式搜索所有大写字母并将其替换为空字符即可,语法“preg_filter('/[A-Z]/','',$str)”。

简明易懂的MyBatis入门教程:一步一步编写你的第一个程序MyBatis是一种流行的Java持久层框架,它简化了与数据库交互的过程。本教程将为您介绍如何使用MyBatis创建和执行简单的数据库操作。第一步:环境搭建首先,确保您的Java开发环境已经安装好。然后,下载MyBatis的最新版本,并将其添加到您的Java项目中。您可以从MyBatis的官方网站下

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

Lumen是Laravel框架开发者开发的一款基于PHP的微框架,它的设计初衷是为了快速构建小型的API应用和微服务,同时保留了Laravel框架的部分组件和特性。Lumen框架轻量级、快速、易上手,因此受到了广泛的关注和使用。在本篇文章中,我们将快速入门Lumen框架,学习如何使用Lumen框架构建简单的API应用。框架准备在学习Lumen框架之前,我们需

两种方法:1、用preg_replace(),可执行正则表达式的搜索和替换,只需将字符串中匹配的字符替换为空字符即可,语法“preg_replace(正则, "", $str)”。2、用preg_match_all(),可搜索字符串中所有和正则表达式匹配的结果,会将每次的匹配结果放在一个数组$array中,语法“preg_match_all(正则,$str,$array);”。

php中可用preg_match_all()配合正则表达式过滤字符串,只获取中文字符;语法“preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr);”,会将匹配字符存入“$arr”数组中。

在javascript中,可以使用replace()函数配合正则表达式“/[u4e00-u9fa5|,]+/ig”来查找字符串中的所有非汉字字符,并将其替换为其他指定值,语法“字符串对象.replace(/[u4e00-u9fa5|,]+/ig,'指定替换值')”。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
