查找除其他非字母数字字符外的非字母数字字符

时间:2015-04-08 15:27:03

标签: regex

我不擅长正则表达式,我需要帮助。

此正则表达式"/[^A-Za-z0-9' -]/"将查找包含字母,数字,空格和破折号的单词或句子。

我正在寻找一个正则表达式,它会检查并确保单词或句子中不包含非字母数字字符,除了空格破折号 apostroph 字母数字,如下例所示:

  • 真棒123 (应该通过)
  • (应该通过)
  • T恤(应该通过)
  • 好鞋(shoud pass)
  • 此处。(因故意而失败)
  • 我很好(应该通过)

1 个答案:

答案 0 :(得分:2)

你几乎就在那里,你表达的问题是它会与你不想要的相匹配。 [^..]表示匹配方括号内的字符。分别在开头和结尾添加^$将确保您匹配整个字符串。

因此,你的正则表达式会变成这样:^[A-Za-z0-9' -]+$。正则表达式的示例可用here。这意味着它指示引擎匹配字母(大写和小写),数字,单引号,空格和破折号。 ^$指示引擎正则表达式应与整个字符串匹配。

编辑:

根据您的评论,我更新了正则表达式,以匹配您在问题中提出的问题或货币值。可以找到正则表达式的更新版本here,如下所示:^(([A-Za-z0-9' -]+)|([$€]\d+([.,]\d{2})?))$。这应匹配没有千位分隔符的货币值。它使用的小数分隔符是,.,因为不同的文化使用不同的符号。