サーチ…


[0-9]または\ d(Java)を使用して1桁の文字に一致させます。

[0-9]\dは同等のパターンです(Regexエンジンがユニコード対応で、 \dも②のようなものと一致しない限り)。それらはどちらも一桁の文字にマッチしますので、あなたが見やすいものを使用することができます。

一致させるパターンの文字列を作成します。 \ d表記を使用する場合は、最初のバックスラッシュをエスケープするために、2番目のバックスラッシュを追加する必要があります。

String pattern = "\\d";

Patternオブジェクトを作成します。パターン文字列をcompile()メソッドに渡します。

Pattern p = Pattern.compile(pattern);

Matcherオブジェクトを作成します。パターンを見つけるために探している文字列をmatcher()メソッドに渡します。パターンが見つかったかどうか確認してください。

Matcher m1 = p.matcher("0");
m1.matches(); //will return true

Matcher m2 = p.matcher("5");
m2.matches(); //will return true

Matcher m3 = p.matcher("12345");
m3.matches(); //will return false since your pattern is only for a single integer

さまざまな数のマッチング

[ab] A及びBが範囲内の数字である場合09

[3-7] will match a single digit in the range 3 to 7.

複数桁の照合

\d\d       will match 2 consecutive digits
\d+        will match 1 or more consecutive digits
\d*        will match 0 or more consecutive digits
\d{3}      will match 3 consecutive digits
\d{3,6}    will match 3 to 6 consecutive digits
\d{3,}     will match 3 or more consecutive digits

上記の例の\dは、数値の範囲で置き換えることができます:

[3-7][3-7]    will match 2 consecutive digits that are in the range 3 to 7
[3-7]+        will match 1 or more consecutive digits that are in the range 3 to 7
[3-7]*        will match 0 or more consecutive digits that are in the range 3 to 7
[3-7]{3}      will match 3 consecutive digits that are in the range 3 to 7
[3-7]{3,6}    will match 3 to 6 consecutive digits that are in the range 3 to 7
[3-7]{3,}     will match 3 or more consecutive digits that are in the range 3 to 7

特定の数字を選択することもできます:

[13579]       will only match "odd" digits
[02468]       will only match "even" digits
1|3|5|7|9     another way of matching "odd" digits - the | symbol means OR

複数の桁を含む範囲内の一致する数値:

\d|10        matches 0 to 10    single digit OR 10.  The | symbol means OR
[1-9]|10     matches 1 to 10    digit in range 1 to 9 OR 10
[1-9]|1[0-5] matches 1 to 15    digit in range 1 to 9 OR 1 followed by digit 1 to 5
\d{1,2}|100  matches 0 to 100   one to two digits OR 100

他の数字で分ける数字の一致:

\d*0         matches any number that divides by 10  - any number ending in 0
\d*00        matches any number that divides by 100 - any number ending in 00
\d*[05]      matches any number that divides by 5   - any number ending in 0 or 5
\d*[02468]   matches any number that divides by 2   - any number ending in 0,2,4,6 or 8

0,4または8のいずれかの番号、または00,04,08,12,16,20,24,28,32,36,40,44,48,52,56,60のいずれかの数字で終わる4で割り切れる一致する数字、64,68,72,76,80,84,88,92または96

[048]|\d*(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96)

これは短縮することができます。例えば、 20|24|28代わりに2[048]使用することができます。また、 [02468][048]および80は同じパターンを有するので、それらを含めることができる: [02468][048]他はパターンもある[13579][26] 。したがって、シーケンス全体を以下のように減らすことができます。

[048]|\d*([02468][048]|[13579][26])    - numbers divisible by 4

2,4,5,10などで割り切れるようなパターンを持たない一致数は、必ずしも簡潔に行うことはできません。通常は、ある範囲の数値に頼らざるを得ません。たとえば、1から50の範囲で7で割るすべての数値を一致させることは、それらの数値をすべて列挙することで簡単に行うことができます。

7|14|21|28|35|42|49

or you could do it this way

7|14|2[18]|35|4[29]

先頭と末尾の空白のマッチング

後続スペース

\s*$ :これは、テキストの末尾( $ )にある任意の( * )空白( \s )と一致します

先頭のスペース

^\s* :これは、テキストの先頭( ^ )にある任意の( * )空白( \s )と一致します

備考

\sはいくつかのRegExpエンジンの共通のメタ文字で、空白文字(空白、改行、タブなど)を取得するためのものです。 :おそらくすべてのユニコードスペース文字をキャプチャしません 。これについては、エンジンのマニュアルを参照してください。

どのフロートにもマッチする

[\+\-]?\d+(\.\d*)?

記号を必要としない場合、または方程式を解析している場合は、 [\+\-]?符号付き浮動小数点と一致します[\+\-]?あなたは\d+(\.\d+)?

説明:

  • \d+任意の整数にマッチする
  • ()?かっこの内容はオプションですが、常に一緒に表示される必要があることを意味します
  • '\。' '。'とマッチするので、 '。'からこれをエスケープする必要があります。通常は任意の文字に一致します

したがって、この式は一致します

5
+5
-5
5.5
+5.5
-5.5

特定の場所の単語に基づいてリストから特定の行を選択する

私は以下のリストを持っています:

1. Alon Cohen
2. Elad Yaron
3. Yaron Amrani
4. Yogev Yaron

私はYaronの姓の男のファーストネームを選択したい。

何の番号なのか気にしないので、私はちょうど何桁の数字であっても、行の始めからそれに続くドットとスペースを、 ^[\d]+\.\s

[a-zA-Z]+\sまたは[aZ]+\s両方に一致する大文字か小文字かを判断できないため、スペースとファーストネームを一致させる必要があります[\w]+\sません。

ここでは、Yaronを含む行だけを姓(行末)として取得するために必要な姓を指定します: \sYaron$

これをまとめて^[\d]+\.\s[\w]+\sYaron$

実例: https : //regex101.com/r/nW4fH8/1



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow