正则表达式的资本词和排除范围

时间:2013-03-21 12:22:10

标签: regex

我需要的是:

  1. 匹配所有资本WORDS
  2. 将所有字词与第一个字母Capital
  3. 匹配
  4. 将所有单词与大写字母和字母之间的点匹配,例如F.M.I
  5. 在成功点1,2,3
  6. 的单词中包含此字母áéíóúÁÉÍÓÚÑñ
  7. 排除首字母大写的单词列表,如下所示:En La El Los Ese
  8. 排除所有字母大写的字词列表,例如SALUD

2 个答案:

答案 0 :(得分:3)

^(([A-Z](\.[A-Z])+)|([A-Z][A-Za-z]+))$匹配首字母大写/所有以点词分隔的大写/大写字母。

它做的是

  • ([A-Z](\.[A-Z])+)匹配大写字母,后跟一个或多个模式一个点后跟一个大写字母 - 第三个要求

  • ([A-Z][A-Za-z]+)匹配大写字母后跟一个或多个字母(也允许使用单个大写字母,将*替换为*) - 第一和第二个要求

如果第一个字母是大写字母,允许字符áéíóúÁÉÍÓÚÑñ,只需在字符类中包含这些字符

([A-Z][A-Za-záéíóúÁÉÍÓÚÑñ]+)

为了排除某些单词,您可以使用负面向前看,如

^(?!SALUD)(?!Los)(([A-Z](\.[A-Z])+)|([A-Z][A-Za-záéíóúÁÉÍÓÚÑñ]+))$

避免使用SALUD和Los。

  • (?!SALUD)确保以下字符序列不是 SALUD ,同样是(?!Los)

我没有很好地满足你的第四个要求。

http://www.regular-expressions.info/是学习正则表达式的好地方。

如果你想匹配,无论开始和结束如何都要移除锚点。

答案 1 :(得分:0)

我认为这可能有用 \ B(?!洛)((A-Z +)|([A-Z] [A-ZA-záéíóúÁÉÍÓÚÑñ] +))(SALUD?!)