【发布时间】:2023-03-18 10:37:01
【问题描述】:
我想要一个 Java 正则表达式字符串,它可以在字符串中找到所有元音,除非它们:
- 是第一个字符或
- 下划线后的下一个字符
AREA_ID 变为
AR_ID
LONG_NAME 变为
LNG_NM
HOME_ALONE 变成
HM_ALN
我玩过http://gskinner.com/RegExr 和 我目前有以下正则表达式替换所有元音,除非它是起始字符p>
(?!^[AEIOU])[AEIOU]
我不知道如何得到第二部分(忽略紧跟在下划线后面的元音)。
【问题讨论】:
-
您可能想要使用单词边界 (
\b)。 -
您需要指明您使用的语言或工具,因为不同的正则表达式引擎是不同的。大多数支持前瞻(您正在使用)的引擎也支持后瞻(您需要),但(例如)JavaScript 不支持。
-
顺便说一句,吹毛求疵:正则表达式不会“删除”任何东西或“替换”任何东西;它只是匹配。在许多语言中都可以找到基于正则表达式的替换功能,但正则表达式本身并没有真正进行替换!
-
我根据你的 cmets 更新了帖子