我需要一个正则表达式,它可以匹配所有数字、字母和所有标点符号(句号、逗号、问号、感叹号、冒号等)。
字符串长度至少为一个字符,但可以超过这个长度。
这可行吗?
字符串长度至少为一个字符,但可以超过这个长度。
这可行吗?
\\p{Graph}+
或\\p{Print}+
。@Test
public void shouldMatch()
{
assertTrue("asdf123ASFD!@#$%^&*()".matches("\\p{Graph}+"));
}
@Test
public void shouldMatchWithWhitespaces()
{
assertTrue("asdf 123 ASFD !@#$%^&*()".matches("[\\p{Graph}\\s]+"));
}
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html
如果我理解得正确,这应该很容易。请尝试:
([^\s]+)
这个正则表达式匹配一个或多个出现的任何字符,但不包括空格。 这是匹配(和重用)任何字符串的最简单方法。也许您已经知道正则表达式中括号的含义。它们用于反向引用,即稍后重用匹配的字符串。
首先看一下字符类
http://www.regular-expressions.info/charclass.html
一个例子:
[A-Za-z_0-9]*
将与ASCII标准字母及下划线匹配的任何内容进行匹配。
您可以将所需的标点符号添加到集合中。
您可以使用\w来匹配任何单词字符,根据您使用的正则表达式实现,它可能还会匹配Unicode字符。
另一种方法是决定您不想匹配什么。如果您想匹配一串非空格字符,可以使用
\S*
5
,也应该匹配字符串(Here is an example. 12345 !?,.;)
吗? - Anderson Green