我想编写正则表达式,它将与空语言相对应。空语言是常规的,因此应该有一种方法为它编写正则表达式。
我特别感兴趣的是如何使用java.util.regex包提供的API在Java中编写它(如果可能的话),但任何其他语言/ API都可以。如果有可能的话,我很好奇。
再次澄清一下,我想找到正则表达式EMPTY_LANG_REGEX,以便
Pattern.compile(EMPTY_LANG_REGEX).matcher(s).matches()
将为每个字符串 s 生成 false 。
我知道类似于++的东西,但这有点破解并且存在性能问题。
感谢您的回答。
答案 0 :(得分:2)
根本不匹配任何字符串,甚至不是空字符串:
^(?=a)b$
另一种不使用前瞻的替代方法(在多线模式下不起作用):
a^
另一种方法,使用对每个字符都失败的否定字符类:
^[^\S\s]$
对于支持单词边界匹配的正则表达式实现,这将始终失败,因为'aa'中的字符之间不会有单词边界:
^a\ba$
或更简单,并且在大多数正则表达式实现中可能也无法匹配:
^\b$