3

星が付いていない数字を抽出したいのですが、例を次に示します。

1
0
0*1543
27 123*5464
11 1007*
998*7586
13
997*686

私はこの正規表現といくつかを使用してみましたが、どれもうまくいきませんでした:

(\d+)[^\*]

私が探しているのは、星が続いていない限り、すべての数字を取得することです。出力は次のようになります。

1
0
27
11
13

私の計画は、正規表現を書き、グループを使用してこれらの値を抽出することでした。このサイトを使用して正規表現をテストしています。

更新: * の後の数字と一致するものを探しているわけではありません。つまり、行頭の数字のみが必要です。ありがとう

更新 II:

正規表現によって与えられた一致をさらに掘り下げた後(Dr.Kameleonから)

(?<!\*)(?<![0-9])([0-9]+(?!\*)(?![0-9])) 

ここに見られるように、私は余分な一致を得ます:

http://regexr.com?30l69

505で合わせたくない222*123 505。他のすべての一致は完全に一致しています。

この正規表現には微調整が必​​要なようですが、微調整できませんでした。(?<!\*)(?<![0-9])(?<!\\s)([0-9]+(?!\*)(?![0-9]))

4

1 に答える 1

5

これを試してください: (デモ: http://regexr.com?30l47 )

([0-9]+(?!\*)(?![0-9]))

またはこれ(例のように最初の部分だけが必要な場合) - http://regexr.com?30l4a

(?<!\*)(?<![0-9])([0-9]+(?!\*)(?![0-9]))
于 2012-04-14T20:35:01.427 に答える