0

Java では、コロンが 1 つだけ含まれる文字列を照合し、コロンが空白の前に表示されるようにするために、どの正規表現を使用すればよいでしょうか?

たとえば、次の文字列と一致する必要があります。

label: print "Enter input"
But: I still had the money.
ghjkdhfjkgjhalergfyujhrageyjdfghbg:
area:54

だがしかし

label: print "Enter input:"
There was one more thing: I still had the money.
ghfdsjhgakjsdhfkjdsagfjkhadsjkhflgadsjklfglsd
area::54
4

4 に答える 4

3

(文字列全体を一致させる必要がある)で使用する場合matchesは、次のように使用できます。

[^\\s:]*:[^:]*

つまり、任意の数のwhitespace:文字、次にa :、さらに任意の数の非:文字を意味します。

私は実際には2つの正規表現の概念のみを使用しました:(否定された)文字クラス繰り返し

の前後に少なくとも1つの文字が必要な場合は:、対応する*+(jlordoがコメントで指摘したように)に置き換えます。

于 2012-12-09T16:48:48.863 に答える
0

それは私たちがホワイトスペースと呼ぶものに依存します。

[^\\p{Space}:]*:[^:]
于 2012-12-09T16:56:02.670 に答える
0

次の手順で開始できます。

 Matcher MatchedPattern = Pattern.compile("^(\\w+\\:{1}[\"\\w\\s\\.]*)$").matcher("yourstring");
于 2012-12-09T19:16:18.517 に答える
0

以下が機能するはずです。

^[^\s:]*:(?!.*:)

文字列に改行を含めることができる場合は、DOTALL フラグを使用するか、正規表現を次のように変更します。

(?s)^[^\s:]*:(?!.*:)
于 2012-12-09T16:47:31.937 に答える