2

我正在尝试使用正则表达式来匹配不包含小于符号 (<) 后跟非空格的字符序列的字符串。这里有些例子

有效 -"A new description."
有效 -"A < new description."
无效 -"A <new description."

我似乎找不到合适的表达方式来匹配。我正在使用 Microsoft 正则表达式验证器,所以我需要它是匹配的,而不是使用代码来否定匹配。

任何援助将不胜感激。

谢谢,
戴尔

4

5 回答 5

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

如果字符串中的最后一个字符是“<”,则对空格进行负前瞻允许它匹配。这是另一种方式:

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

前瞻扫描整个字符串以查找紧跟非空白字符的“<”。如果没有找到,“.+”继续匹配字符串。

于 2009-08-24T18:39:15.560 回答
1

换句话说,你允许在你的字符串中有两件事:

  1. 任何字符,除了 a<
  2. A<后跟一个空格。

我们可以直接写成:

/([^<]|(< ))+/
于 2009-08-24T18:18:01.983 回答
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 回答
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 回答