0

チェックstring1にRegularExpressionsを設定したい。

string1は次のように変更できます:

  • string1:='D1413578; 1038'
  • string1:='D2; 11'
  • string1:='D16; 01'
  • 、....。

string1には、文字「D」とセミコロンのみが常に存在します。

私はRegularExpressions1を設定しました:='\ b(D#\;#)\ b';

しかし、RegularExpressions1はstring1を正しくチェックできません。

vb6ではこのRegularExpressions1="D#;#"。しかし、それがDelphiにあるのかわかりませんか?

4

2 に答える 2

3

試す

\bD\d*;\d*

\d*「0桁以上」を意味します。

ちなみに、\bセミコロンの後に数字がない場合は一致が失敗するため、2番目は省略しました(数字はオプションであるとおっしゃいました)。

「チェック」とは文字列全体を「検証」することを意味する場合は、

^D\d*;\d*$

Dこれはすべて、との後に数字のみが許可されていることを前提としています;。そうでない場合は、質問を編集して明確にしてください。

于 2010-10-22T13:03:54.073 に答える
0

両方の数値に少なくとも1桁が必要であると想定して、次の正規表現を使用します。

\AD\d+;\d+\z

文字列の最初と最後を一致させるのではなく、を使用することを好みます。なぜなら、それらは常にそれだけを行う\Aから\zです。^$

Delphi XEでは、この正規表現string1が1行のコードで一致するかどうかを確認できます。

if TRegEx.IsMatch(string1, '\AD\d+;\d+\z') then ...

多くの文字列を使用する場合は、TRegExをインスタンス化します。

var RE:TRegEx;

RegEx.Create('\ AD \ d +; \ d + \ z'); ListOfStringsのstring1の場合、RE.IsMatch(string1)then..。

于 2010-10-26T12:44:01.097 に答える