私はPythonでいくつかの正規表現をjavaに変換する必要があります。私は正規表現に何をするかを知っていますが、変換する方法はわかりません。python regexをjava正規表現に変換するには?
ここはPythonの式です:^172\.(1[6789]|2\d|30|31)\.
です。
import re
pattern='^172\\.(1[6789]|2\\d|30|31)\\.'
test_strings = ['172.19.0.0', '172.24.0.0', '172.45.0.0', '172.19.98.94']
for string in test_strings:
print re.findall(pattern, string)
、それは適切に私が何を期待キャプチャ:私はそれはXが16から31
これはpythonで働くの範囲172.X
のようなIPアドレスの任意の並べ替えをキャプチャしたい
['19']
['24']
[]
['19']
しかし、私はこれらをjavaに変換しようとしましたが、うまくいきません。正常にエスケープするために\
を各\
に追加するだけで、Java正規表現に変換できるはずですか? like ^172\\.(1[6789]|2\\d|30|31)\\.
しかし、それでも私が望む方法と一致しません。この場合、PythonとJAVAの正規表現の違いについて私は何が分かりませんか? http://java-regex-tester.appspot.com/、と私は172.19.0.0
に対象のテキストを設定し、それが一致していないが、それは「検索」ん:
私はjava
コードが容易に入手できていないが、私は、このツールを試してみました。しかし、ターゲットテキストとして "blah"を入力すると、 "Find"セクションに何かが置かれます。このツールhttp://java-regex-tester.appspot.com/を信頼しているとは確信していません。 "blah"
Java正規表現が正しいことを確認するにはどうすればよいですか?
「が、それはまだ私が望むように一致していない」私たちは、あなたがJavaでこの正規表現を使用しているかを正確に確認することができますか?あなたのインプット、期待される結果、実際の結果は何ですか? – Pshemo
Pythonでどのように使用されているのか分かりますか? –
*推測:*あなたは 'matches()'を使っています。これは、*入力全体と常に一致するためです。 ['find()'](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Matcher.html#find--)を使用してください。 – Andreas