首页 > 解决方案 > 正则表达式查找单词中的所有字符是否都是相同的特定字符

问题描述

我有一组单词一个接一个出现,例如 aa、@#、???、~~~、?~ 等

我需要一个正则表达式来查找这些单词中的任何一个是否仅包含?或只有〜。在上述输入示例中,??? 和 ~~~ 应该匹配,但不是其他的。

我分别尝试过^[\s?]*$并且^[\s~]*$它有效,我正在尝试将它们结合起来。 ^[\s?||~]*$不起作用,因为它也承认 ?~ 是有效的。

有什么帮助吗?

标签: regex

解决方案


您可以使用这个正则表达式,它查找以 a~或 a开头的字符串?,然后使用反向引用 ( \1) 断言字符串中的每个其他字符都与第一个字符相同:

 ^([~?])\1+$

正则表达式 101 上的演示


推荐阅读