2012-01-20 9 views
1

System.Text.RegularExpressions.Regex( "#*#")で始まり、終わりのようなテキストのためのRegularExpressionを作成するにはこれは正しい..!?私のテキストは#ABC1234 + as00#などのようにすることができ、すなわち、#。これ正規表現パターンが何をすべき#vb.netでどのように#

+0

を使用することができ、それは簡単です。 – AMissico

+0

@ user1066231:文字列全体の例を挙げることはできますか? –

答えて

4

の間に何も を:

Regex("#(.+?)#") 

.マッチ任意の文字、+は1に一致するように言います以上であり、?は試合を非貪欲にする。括弧はグループを識別します。

+1

文字列リテラル '@'は必要ありません。1)これはVB.NETにはありません。 2)たとえそれがC#であっても、それを必要とする文字はありません。 – vcsjones

+0

本当、私は正規表現の文字列リテラルの前にアスタリスクを付けているだけです。わかりやすくするために削除しました。 – RoccoC5

1

はこの表現を試してみてください:

^#*#$

^アンカー表現入力の先頭に。 #は別の#と一致します。 .は任意の文字に一致し、可能な限り多くの回数一致する*リピートが一致します。 #は別の#と一致します。最後に、$は入力の最後に式を固定します。

--edit--
私はリクエストを誤解しましたが、ここでは表現部分が何を意味するかの例としてこの回答を残しておきます。

+0

私はこの "#(。+?)#"を試してみました。うまくいきました。 Vb.netを使用しています。ウルの説明は本当に役に立ちました。 – user1066231

3

行全体が"#..#"で構成されている場合、あなたはLIKE演算子を使用し

If s.BeginsWith("#") AndAlso s.EndsWith("#") Then 
    s = s.Substring(1, s.Length - 2) 
End If 

あるいは単純

s = s.Trim("#"c) 
+0

ポスターは「#」で始まり、「#」で終わっていますが、処理中のテキスト全体がそのペアで始まり、終わるとは言いません。 IOW、それは質問が書かれているので、ここにテキストのいくつかの束があります。#12345-6789#それに続くテキストが続きます。 :)あなたの答えを下降させないで、ちょうどそれが問題の言葉を与えられた解決策ではないかもしれないことを指摘してください。 –

+0

はい、「私のテキストは#abc1234 + as00#のようになります」とは、そのテキスト全体を示しています。 –

+1

しかし、「私のテキストは#abc1234 + as00#などのようになります。つまり、#..# 'の間には何か - 「etc.」と「#〜#の間の何か」に注意してください。それは何も続くことはないと言っている。再度、downvotingではなく、あなたの答えはおそらく "行全体が#..#で構成されていれば、あなたは...を使うことができます"と言うべきでしょう。 –

関連する問題