0

我想要一个 Java 正则表达式字符串,它可以在字符串中找到所有元音,除非它们:

  1. 是第一个字符或
  2. 下划线后的下一个字符

AREA_ID 变为
AR_ID

LONG_NAME 变为
LNG_NM

HOME_ALONE 变为
HM_ALN

我玩过http://gskinner.com/RegExr并且我目前有以下正则表达式替换所有元音,除非它是起始字符

(?!^[AEIOU])[AEIOU]

我不知道如何获得第二部分(下划线后立即忽略元音)。

4

1 回答 1

1

我猜你正在使用 JavaScript,在这种情况下会这样做:

(?!(?:^|_))_?[AEIOU]

但是,如果您使用的正则表达式支持lookbehinds,试试这个:

(?<!^)(?<!_)[AEIOU]

请注意,需要两个lookbehind,因为lookbehind 必须具有固定长度,而“字符串的开头或下划线”则没有。

于 2013-07-11T20:30:21.993 回答