我试图让用户在其姓名的 10 个字符范围内添加空格。如果他们不愿意,他们可以选择保留不带空格的名称:myNameLength
和 myNoNums
匹配得很好。
我不确定如何在正则表达式中表示空格
。
我用过this website帮助我更多地理解正则表达式以及 JPS ,但我无法找到正确的语法。
到目前为止,我已经尝试了下面的内容以及 \\t{0,10}"、"[ ]{0,10}
和 [\\s] *
。我还知道它不是 \t
或 \s
因为 Java 使用正则表达式的方式不同。
这就是我想知道的原因:
Java 是否有一种与平常不同的方式来编码带有边界的空间?
@Test
public void testName()
{
String myNameLength = "\\w{1,10}";
String myNoNums = "[^\\d]{1,10}";
String mySpaces = "\\s{0,10}";
Player p = new Player();
p.Player("Antonio");
String s = p.getName();
assertTrue(s.matches(myNameLength) && s.matches(myNoNums) && s.matches(mySpaces));
}
最佳答案
使用正则表达式验证名称不是一个好主意,但如果您想允许包含任何字符、空格,则可以使用正则表达式:
.{1,10}
但是如果你只想有 \w
,没有数字但有空格,你可以使用单个正则表达式:
[\\w &&[^\\d]]{1,10}
<小时/>
根据代码的当前设置,您需要确保名称匹配 0 到 10 个空格,并且没有其他字符。
关于java - 使用正则表达式添加带边界的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19200020/