使正则表达式允许字母、数字和特殊字符

时间:2021-07-06 00:48:22

标签: javascript regex apex

我搜索了一个正则表达式,不允许单词之间有更多的空格,我明白了:

'^[a-zA-Z0-9]+(?: [a-zA-Z0-9]+)*$'

它正在工作,但我意识到它不接受特殊字符,所以我实施了:

'^[a-zA-Z0-9!@#$&?!*%()\\-`.+,/\"]+(?: [a-zA-Z0-9!@#$&?!*%()\\-`.+,/\"]+)*$'

但它让我想知道它是否有其他公式,所以我可以接受所有字母,数字和所有特殊字符,而不必写所有特殊字符。

示例: '测试一下' 如果像这样的单词之间有多个空格,则正则表达式需要捕获它。

1 个答案:

答案 0 :(得分:0)

如果我的正则表达式是对的,你应该可以使用
\S+ \S+
'\S' 是任何不是空格的字符。所有符号和字母都包含在 '\S' 中,我们有 '+' 表示其中的任何一个或多个。然后中间有一个空格,它只会匹配它们之间有一个空格的单词。但是,如果您将此应用于大文件,请务必小心。这不会检查每个单词对。如果两个单词只匹配一个空格,则将它们拉出,第二个单词不会与第二个单词进行比较;

one two three

在这种情况下,只有 one two 会被抓取,三个永远不会被两个检查,因为我们找到了匹配。确保没有双空格的一种更简单的方法是专门找到文本中的所有双空格,并按照您的需要处理它们。