0

我需要的是这个:

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

2 回答 2

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/是学习正则表达式的好地方。

如果您想匹配而不考虑开始和结束,请移除锚点。

于 2013-03-21T12:40:05.910 回答
0

我认为这可能有效 \b(?!SALUD)(?!Los)((A-Z+)|([AZ][A-Za-záéíóúÁÉÍÓÚÑñ]+))

于 2013-03-22T18:13:30.557 回答