我正在尝试找到只匹配字符串的正则表达式,如果它们不包含一个点,i.f。它与stackoverflow
,42abc47
或a-bc-31_4
匹配,但不符合:.swp
,stackoverflow
或test.
。
答案 0 :(得分:35)
^[^.]*$
或
^[^.]+$
取决于您是否要匹配空字符串。某些应用程序可能会隐式提供^
和$
,在这种情况下,它们是不必要的。例如:HTML5 input
element's pattern
attribute。
您可以在regular-expressions.info网站上找到更多精彩信息。
答案 1 :(得分:4)
使用没有任何点的正则表达式:
^[^.]*$
这是整个字符串中不是点的零个或多个字符。我过去使用的一些正则表达式库有获得完全匹配的方法。在这种情况下,您不需要^
和$
。在你的问题中使用一种语言会有所帮助。
顺便说一句,你没有拥有来使用正则表达式。在java中你可以说:
!someString.contains(".");
答案 2 :(得分:1)
验证要求:第一个字符必须是Letter然后是Dot'。'目标字符串中不允许使用。
//我们正在使用的输入字符串 string input =“1A_aaA”;
// The regular expression we use to match
Regex r1 = new Regex("^[A-Za-z][^.]*$"); //[\t\0x0020] tab and spaces.
// Match the input and write results
Match match = r1.Match(input);
if (match.Success)
{
Console.WriteLine("Valid: {0}", match.Value);
}
else
{
Console.WriteLine("Not Match");
}