2


1

正規表現を介して最初の文字を設定する方法は?

最初の文字は等号( =)以外のものであれば何でもかまいません。

次の正規表現を作成しました。

[^=].

「ab」、「b2」などはパスし、「= a」はパスしません。

しかし、事は、私も単一の文字を受け入れたいです:

「a」も受け入れられるべきです。 どうやってやるの?

更新

なぜ私がそれをしているのか疑問に思うかもしれません。 URL正規表現があります

`(?!=)((www \。|(https?| ftp)://)[.a-z0-9-] + \。[a-z0-9 /_:@=.+?,# %&〜-] * [^。 '#!()?,> <;]) `

しかし、 `=`文字の直後にある場合は、URLを解析したくありません。

5 Answer


5


ネガティブな先読みを試してください:

^(?!=)

`^`は入力の開始と一致し、 `(?!…​)`は否定的な先読みです。 また、空の文字列にも一致します。


3


これが正規表現の唯一の制約である場合、使用している言語が提供するAPIを使用して、文字列の最初の文字を取得する必要があります。

String s = "myString";
if(s.Length == 0 || s[0] != '=')
    //Your code here

'' '' '

本当に正規表現が必要な場合は、https://stackoverflow.com/questions/3931992/how-to-set-the-first-character-via-regex/3932011#3932011 [@Bart solution]をご覧ください。

先読みなしの代替案 / ([ =] | $)/

^        <- Starts with
(        <- Start of a group
  [^=]     <- Any char but =
  |        <- Or
  $        <- End of the match
)        <- End of the group


1


RegExは必要ありません。 http://msdn.microsoft.com/en-us/library/baketfxw.aspx [String.StartsWith] …​があります

if ( ! theString.StartsWith("=") ) {
   ...


0


最初と最後に固定し、すべてをオプションにします。

^(?:[^=].*)?$


0


コードに一致するものがない場合は、単に `^ =`を使用して行動できませんか?