2016-05-24 3 views
0

許容形式:PowerBuilderの - 限られた正規表現

0 
1,2 
1,100,2000,30000 
etc... 

正規表現:

Match(a_s_stat, "^\d+(,\d+)*$") 

関数はfalseを返します。文字列a_s_stat:0,1

正規表現をPowerBuilder 9.0に正しく保存するにはどうすればよいですか?

+1

てみ 'ほど快適ではないものの、 "^ [0-9] +([0-9] +)* $"' 。また、[BNI PbniRegex](http://stackoverflow.com/questions/487406/looking-for-a-regular-expression-extension)のような正規表現拡張にも興味があります。 –

+0

残念ながら、あなたの提案は機能しません。私はこのように前に試しました。私はPBNI PbniRegexを使用することはできません - 私はそれについて決心しませんでした。 – user3064885

+0

[見つかった](http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc37783.1250/pdf/dwref.pdf)。カッコは犯人です!それはあなたがあなたの仕事に 'Match'を使うことができないことを意味します** *定量化する*グループ*、*文字列を定義する方法がないためです。したがって、 '^ [0-9、] + $'のような簡略化された正規表現(正規表現ではなく単に*パターン*と呼んでいます)を使うことができます。これは ',,,,,, 'と同様です文字列 –

答えて

0

このコードはあなたの問題を解決する必要があります - "本当の" 正規表現

if Match(data, "^[0-9]+$") or & 
    (Match(data, "^[0-9]+[,0-9]*[0-9]+$") and not Match(data, ",,")) then 
    statusText = "<data> is list of integers" 
else 
    statusText = "Cannot interpret <data> as list of integers" 
end if