领导角色的正则表达式

时间:2015-05-27 08:04:10

标签: regex

我有一个接受字符串的文本框。 我想进行验证,如果字符X在字符串中,它应该在最后,而不是在中间。但是X可以重复多次。一个字符串可能有5 X或10 X,但所有X必须最后不在字符串的中间。

例如:

testingxxxx这是正确的字符串,因为所有X都是最后的。

test_x_ingxxxxx这是无效的,因为X位于字符串之间。

testX这是有效的,因为X最后

XtestXXXX这是无效的,因为X位于起始位置。

3 个答案:

答案 0 :(得分:3)

试试这个:

^[^Xx]+[Xx]*$

它首先匹配除Xx以外的所有内容,然后匹配Xx零到无限次。

演示:http://www.regexr.com/3b32s

答案 1 :(得分:1)

由于没有提供有关所用编程语言的提示,因此我将尝试使用一个通用的正则表达式,该表达式匹配除x(X)之外的任何字符,该字符串以结束的行开头一个或多个x(X)字符

^[^Xx]*([Xx]+)$
  • ^[^Xx]*:该行开头的任何字符序列(数字)都不是大写或小写 x
  • ([Xx]+)$:该行必须以一个或多个 x 字符(大写或小写)字符的序列结尾。请注意捕获组在此使用(...)以捕获我应该搜索的尾部字符串。

Here you can give it an online test.

答案 2 :(得分:0)

试试这个:

^[^xX]*[xX]*$

首先匹配所有无(x或X)字符,然后匹配所有尾随(x或X)字符。

或者,您可以将末尾的x数量限制为5或10:

^[^xX]*([xX]{5}){0,2}$

但是,这与您的testingxxxx(4次x)和testX(只有x次)的示例不符。