【发布时间】:2021-08-25 00:14:55
【问题描述】:
我有各种.PREFIX-word1-word2-word3 格式的字符串,其中 PREFIX 可以是任何单词,并且前缀后面可以有 1 个或多个单词(在本例中为 word1 word2 word3)。
我试图做的是匹配前缀后面的任何单词,以便最后我只返回单词(在本例中为 word1 word2 word3)。因此,我不想匹配 .PREFIX 或任何破折号。
鉴于 PREFIX 可以是我一直在使用的任何与 word1-word2-word3 匹配的 (?<=-).*$。
为了匹配word1 word2 word3,我缺少什么?
【问题讨论】:
-
那么,前缀或单个单词可能包含破折号?
-
(?<=-)\w+?见regex101.com/r/LG7rKj/1 -
对,所以格式始终为
.PREFIX-+word+-,您可以根据需要多次重复word+-。但是,最后一个单词没有破折号。 -
如果单词或前缀中不允许使用破折号,您可以使用
[^-]*而不是.*。并删除最后的$。 -
太棒了,看起来两个正则表达式都是获得预期结果的有效方法。
标签: regex