Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不带非字母数字字符行的正则表达式_Java_Regex - Fatal编程技术网

Java 不带非字母数字字符行的正则表达式

Java 不带非字母数字字符行的正则表达式,java,regex,Java,Regex,我希望正则表达式与以下字符串匹配: Discover-现金返还奖金和Citi TYP® 所有非字母数字字符,如-、&和>>,不能一个接一个地出现 试过这个:^[A-Za-z0-9]+[-]*[A-Za-z0-9]+[&]*[A-Za-z0-9]+[®]*[A-Za-z0-9]+$ 试过这个:^[A-Za-z0-9]+[-]*[A-Za-z0-9]+[&]*[A-Za-z0-9]+[®]*[A-Za-z0-9]+$ 这不匹配,因为尾随的[A-Za-z0-9]+$要求在行尾有一个[A-Za-z0-9

我希望正则表达式与以下字符串匹配:

Discover-现金返还奖金和Citi TYP®

所有非字母数字字符,如
-
&
>>
,不能一个接一个地出现

试过这个:
^[A-Za-z0-9]+[-]*[A-Za-z0-9]+[&]*[A-Za-z0-9]+[®]*[A-Za-z0-9]+$

试过这个:
^[A-Za-z0-9]+[-]*[A-Za-z0-9]+[&]*[A-Za-z0-9]+[®]*[A-Za-z0-9]+$

这不匹配,因为尾随的
[A-Za-z0-9]+$
要求在行尾有一个
[A-Za-z0-9]
字符,而字符串以
®
结尾

要匹配除空格外没有非字母数字字符的行,可以使用正则表达式:

^.?([A-Za-z0-9 ]++.?)*$
这基本上是

  • [A-Za-z0-9]++
    -一系列字母数字字符或空格,后跟
  • -最多多一个字符
  • (…)*
    -上述情况发生任意次数

前导的
^.?
允许在字符串开头添加一个额外字符。重要的是要使用
++
以避免。

@CarlosHeuberger
*
不匹配每个字符串,因为它不匹配字符(默认情况下)。所有非字母数字字符。。。不能一个接一个出现。然后拒绝任何包含
[^A-Za-z0-9]{2,}
的内容。但是请注意,
“&”
也是一个无效的序列。@shmosel您可以编写整个正则表达式吗?这就是整个正则表达式。它只匹配-和&