我正在尝试使用正则表达式来匹配不包含小于符号 (<) 后跟非空格的字符序列的字符串。这里有些例子
有效 -"A new description."
有效 -"A < new description."
无效 -"A <new description."
我似乎找不到合适的表达方式来匹配。我正在使用 Microsoft 正则表达式验证器,所以我需要它是匹配的,而不是使用代码来否定匹配。
任何援助将不胜感激。
谢谢,
戴尔
我正在尝试使用正则表达式来匹配不包含小于符号 (<) 后跟非空格的字符序列的字符串。这里有些例子
有效 -"A new description."
有效 -"A < new description."
无效 -"A <new description."
我似乎找不到合适的表达方式来匹配。我正在使用 Microsoft 正则表达式验证器,所以我需要它是匹配的,而不是使用代码来否定匹配。
任何援助将不胜感激。
谢谢,
戴尔
@"^(?:[^<]+|<(?!\s))*$"
如果字符串中的最后一个字符是“<”,则对空格进行负前瞻允许它匹配。这是另一种方式:
^(?!.*<\S).+$
前瞻扫描整个字符串以查找紧跟非空白字符的“<”。如果没有找到,“.+”继续匹配字符串。
换句话说,你允许在你的字符串中有两件事:
<
<
后跟一个空格。我们可以直接写成:
/([^<]|(< ))+/
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
使用否定前瞻:“<(?!)”
我想这可能是你要找的。
Valid - "A new description."
Valid - "A < new description."
Invalid - "A <new description."
Try this: <\S
这将查找具有小于符号并且在其后缺少空格的内容。
在这种情况下,它将匹配"<n"
不确定您希望它匹配多少。