正则表达式字符串匹配

时间:2015-06-25 12:52:46

标签: regex

我正在尝试创建一个满足以下条件的正则表达式:

对象名称必须:

  • 是大写
  • 可以包含字符两边的任何数字
  • 以下字符排除在任何地方'" *'&<> /

任何有关如何实现此类目标的提示都将受到赞赏。

有效示例

  • 第10页
  • A23 - 平底12B范围和津贴。
  • 2 - 9 GUARDSPACE AVENUE。

无效的示例

  • site 10
  • A23 / FLATS 12B RANGE AND ALLOWANCE PITCH
  • 2& 9 GUARDSPACE AVENUE

2 个答案:

答案 0 :(得分:1)

可以通过以下正则表达式来实现:

^[^a-z'"*&<>\/]+$

请参阅demo

它允许任何不是'"*'&<>\/的字母,并且要求没有小写的英文字母。

  • ^ - 字符串开头
  • [^a-z'"*&<>\/]+ - 除'"*&<>以外的1个或多个字符,/或小写英文字符。
  • $ - 字符串结尾

限制长度可以通过限制量词来实现:

^[^a-z'"*&<>\/]{3,60}$

答案 1 :(得分:1)

如果您的意思是字符组(不能包含数字和"&'*<>/)可以在数字前面加上后跟数字,那么您可以这样做:

^\d*[^a-z&<>"*'\/]*$

DEMO

上面的正则表达式允许数字交错字符组,即它会匹配123AB123CD123之类的字符串,如果你也不想匹配这些字符串,请使用以下正则表达式

^\d*[^a-z0-9&<>"*'\/]*\d*$

此外,如果您不希望正则表达式匹配空字符串,请将字符类的*更改为+