如何仅匹配不包含点的字符串(使用正则表达式)
我试图找到只匹配字符串的正则表达式,如果它们不包含包含点(例如,它匹配stackoverflow
,42abc47
或a-bc-31_4
但不匹配:.swp
,stackoverflow
或test.
。如何仅匹配不包含点的字符串(使用正则表达式)
^[^.]*$
或
^[^.]+$
根据您是否想匹配空字符串。某些应用程序可能会隐式提供^
和$
,在这种情况下,它们是不必要的。例如:HTML5 input
element's pattern
attribute。
您可以在regular-expressions.info网站上找到更多有用的信息。
谢谢,这工作! – tx31415 2011-01-20 01:52:15
使用正则表达式不具有任何点:
^[^.]*$
即零个或多个字符不整串点。我过去使用的一些正则表达式库有获得精确匹配的方法。在这种情况下,您不需要^
和$
。在你的问题中有一种语言会有所帮助。
顺便说一句,你不要有使用正则表达式。在Java中,你可以说:
!someString.contains(".");
@tchrist - 我更新了我的答案。我真的已经使用过库(不能记住哪些),以便进行精确匹配。我觉得OP在说“不是点”时遇到了麻烦。另外 - 我认为我的`包含'方法是相当合理的。但也许这是作业或OP被迫使用一些只接受正则表达式的库... – Tom 2011-01-20 01:10:40
验证要求:第一个字符必须是字母,然后点'。'目标字符串中不允许。
//我们正在使用的输入字符串 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");
}
顺便说一句,你应该更新问题,以准确地反映你想要的。你似乎*不*想要,但问题表明你*想*点。 – Tom 2011-01-20 00:45:57