- 已关闭**。此问题需要超过focused。当前不接受答案。
- 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。
23小时前关门了。
Improve this question
不久前,我接到一个有趣的任务,那就是创建一个正则表达式,它可以接受单词中的字符组成的任何单词,但不能接受包含原单词的单词。
示例:
原始字符串:"亚当"
它接受的字符串:"阿达"、"一"、"adm"、"亚当"、"阿曼达"
不接受的字符串:"亚当""aaadam""阿姆达达姆"
我已经在这上面花了很长一段时间了,但还是弄不明白。一开始我也试着把它做成一个DFA(确定性有限自动机),希望当我看到所有的转换时,它会让我更容易弄明白。
有什么想法吗?
1条答案
按热度按时间v8wbuo2f1#
这里我为它做了一个正则表达式:https://regex101.com/r/eC2dwx/1
^((?!adam)[adam])+$
摘除:^
匹配字符串的开头,$
匹配结尾,因此必须为string()+
与组匹配一次或多次(?!adam)
不是adam
[adam]
亚当的任何字母