我有一个接受字符串的文本框。
我想进行验证,如果字符X
在字符串中,它应该在最后,而不是在中间。但是X
可以重复多次。一个字符串可能有5 X
或10 X
,但所有X
必须最后不在字符串的中间。
例如:
testingxxxx
这是正确的字符串,因为所有X
都是最后的。
test_x_ingxxxxx
这是无效的,因为X
位于字符串之间。
testX
这是有效的,因为X
最后
XtestXXXX
这是无效的,因为X
位于起始位置。
答案 0 :(得分:3)
答案 1 :(得分:1)
由于没有提供有关所用编程语言的提示,因此我将尝试使用一个通用的正则表达式,该表达式匹配除x(X)之外的任何字符,该字符串以结束的行开头一个或多个x(X)字符:
^[^Xx]*([Xx]+)$
^[^Xx]*
:该行开头的任何字符序列(数字)都不是大写或小写 x ([Xx]+)$
:该行必须以一个或多个 x 字符(大写或小写)字符的序列结尾。请注意捕获组在此使用(...)
以捕获我应该搜索的尾部字符串。答案 2 :(得分:0)
试试这个:
^[^xX]*[xX]*$
首先匹配所有无(x或X)字符,然后匹配所有尾随(x或X)字符。
或者,您可以将末尾的x数量限制为5或10:
^[^xX]*([xX]{5}){0,2}$
但是,这与您的testingxxxx
(4次x)和testX
(只有x次)的示例不符。