2

正規表現を使用して、小なり記号 (<) の後にスペース以外が続く一連の文字を含まない文字列と一致させようとしています。下記は用例です

有効 -"A new description."
有効 -"A < new description."
無効 -"A <new description."

一致する適切な表現が見つからないようです。Microsoft 正規表現バリデーターを使用しているため、一致する必要があり、コードを使用して一致を否定しないでください。

任意の支援をいただければ幸いです。

ありがとう、
デール

4

5 に答える 5

6
@"^(?:[^<]+|<(?!\s))*$"

スペースに対して負の先読みを行うと、文字列の最後の文字が「<」の場合にスペースを一致させることができます。別の方法は次のとおりです。

^(?!.*<\S).+$

先読みは、文字列全体をスキャンして、直後に空白以外の文字が続く「<」を探します。見つからない場合は、「。+」が先に進み、文字列と一致します。

于 2009-08-24T18:39:15.560 に答える
1

つまり、文字列に2つのことを許可します。

  1. aを除くすべての文字<
  2. Aの<後にスペースが続きます。

これは、次のように直接書くことができます。

/([^<]|(< ))+/
于 2009-08-24T18:18:01.983 に答える
0

否定的な先読みを使用します: "<(?!)"

于 2009-08-24T18:17:09.787 に答える
0

これがあなたが探しているものかもしれないと思います。

Valid - "A new description."
Valid - "A < new description."
Invalid - "A <new description."



 Try this:   <\S

これは、より少ない記号があり、その後にスペースがないものを探します。

この場合、それは一致します"<n"

ただし、どれだけ一致させたいかはわかりません。

于 2009-08-24T18:17:21.113 に答える
0
var reg = new Regex(@"<(?!\s)");
string text = "it <matches";
string text2 = "it< doesn't match";

reg.Match(text);// <-- Match.Sucess == true
reg.Match(text2);// <-- Match.Sucess == false
于 2009-08-24T18:12:53.773 に答える