2

文字列が数字で始まるかどうかを判断する必要があります-次のことを試してみましたが、役に立ちませんでした:

if (matches("^[0-9].*)", upper(text))) str = "Title"""

私は DXL と Regex を初めて使用します。何が間違っていますか?

4

3 に答える 3

2

文字列の先頭でのみ一致を示すには、キャレット文字が必要です。状況によっては必要ないかもしれませんが、すべての数字に一致するようにプラス記号を追加しました。最初に数字だけを探していて、その後に何かがあるかどうかを気にしない場合は、もう必要ありません。

string str1 = "123abc"
string str2 = "abc123"

string strgx = "^[0-9]+"
Regexp rgx = regexp2(strgx)

if(rgx(str1)) { print str1[match 0] "\n" } else { print "no match\n" }
if(rgx(str2)) { print str2[match 0] "\n" } else { print "no match\n" }

上記のコード ブロックは次のように表示されます。

123
no match
于 2013-10-17T09:06:56.573 に答える
1

@mrhoboは正しいです。次のようなものが必要です:

Regexp numReg = "^[0-9]"
if(numReg text) str = "Title"

upper数字を探しているだけなので、必要ありません。またmatches、式に一致する文字列の部分を見つけるためのものです。文字列全体が式と一致することを確認したいだけの場合は、上記のコードの方が効率的です。

幸運を!

于 2013-10-02T13:30:01.193 に答える