/**
小编最近做的项目里面用到了需要匹配包含指定字符串的字符串,
我用到了正则匹配。下面是具体代码:
*/
//正则判断相关人士类型是否包括027,网银使用者
String reg = "((?!" + partnerTypeConfig.getBank_user() + ").)*";
/**
这里面 partnerTypeConfig.getBank_user() 是变量,所以啊,
正则匹配是可以匹配变量的。此次小编主要匹配 207 这个字符串,
所以正则表达式应该是 :
*/
String reg = ((?!207).)*;
解释:
?! 这个符号在正则表达里面是 否定向前查找。
+--+--+--+--+--+--+--+--+--+--+--+--+--+
String s = |e1|i |e2|p |e3|h |e4|o |e5|n |e6|e |e7|
+--+--+--+--+--+--+--+--+--+--+--+--+--+
index 0 1 2 3 4 5
在字符串里面,每个字符前后都会有一个空字符,即 n 个字符就有 n + 1
个空字符。
(?!ho). 会往前查找,在 e3 会不匹配,因为出现了 ho。但是 . 只匹配
捕捉一次。我们需要多次,于是就把该匹配包裹成组,加上 * 表示匹配多次。
即 ((?!ho).)*
回到问题里面,就是匹配给定字符串里面是否包含 207 字符了。
08-09
5162
06-02
428
05-13
1万+
10-21
2万+
02-03
2675