1

たとえば、整数値を文字列の浮動小数点値に置き換えようとしています。

#var1 * #var2/ 1+100 - 2 + 1.5 - .5

正規表現は1,100とに一致する必要がありますが、となど2、すでに浮動小数点数である数値には一致しません。1.5.5

私は/[^\w](\d+)/、数字を自分で見つけられる まで到​​達しました。さて、この正規表現から数字を除外するにはどうすればよい\.?\d+ですか?

RegEx は Java または Actionscript 3 で動作するはずです。

正規表現テスト

4

5 に答える 5

2

これは Java で動作します: /(?<![.\w])\d+(?![.\w])/. 先読みと後読みの両方を使用して、ドット/文字が先行または後続する数字の一致を停止します。

于 2012-04-20T10:34:43.923 に答える
1

先読みを試してみませんか?Javaで動作すると思いますが、ActionScriptについての手がかりはありません。

[^\w](\d+)(?![.]\d+)/

直後にドット整数が続かない数字のシーケンスのみに一致します。

于 2012-04-20T10:31:41.677 に答える
1

これには否定的な先読みを使用できます

(?<!\.\d+)

はこれを除外しますが、これをアンカーと組み合わせる必要があります。そうしないと、部分一致が得られます。

/(?<!\B|\.)(\d+)(?!\.\d+)\b/

数字の前にある単語以外の文字も変更する必要があります。ここでは否定の後読みアサーションを使用しました(?<!\B|\.)。数字の前にドットがないこと、または非単語境界ではないことが保証されます (単語境界で一致する二重否定)。

ここでRegexrを参照してください

于 2012-04-20T10:33:23.757 に答える
0

正規表現構文が先読みをサポートしている場合は、それを使用できます。Java はそうします。AS3についてはわかりません。

/[^\w.]\d+(?!\.)/

この場合、一致した文字列全体を置換で使用する必要があることに注意してください。

于 2012-04-20T10:38:26.173 に答える
0

私の提案は

\b(?<!\.)\d+(?!\.)\b
于 2012-04-20T11:51:41.930 に答える