正则表达式匹配敏感信息

身份证号、手机号和银行卡号,因为这几个数字的长度不同,可能存在嵌套现象。
以下正则表达式可以避免出现这种情况。

手机号

((?<=[^\d])|^)(\+?86)?1([38]\d{1}|4[579]|5([0-3]|[5-9])|66|7([1-3]|[5-8])|9[189])\d{8}((?=[^\d])|$)

身份证号

((?<=[^\d])|^)((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|(71)|(8[1-2]))\d{4}(19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]((?=[^\d])|$)

银行卡号

((?<=[^\d])|^)([1-9]{1})(\d{15,16}|\d{18})((?=[^\d]xX)|$)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用正则表达式的"\\b"元字符来匹配单词的边界,然后在两个单词之间加上".*"来匹配它们之间的任意字符。例如,如果要匹配单词"apple"和"banana"之间的任意字符,可以使用以下正则表达式: ``` \bapple\b.*\bbanana\b ``` 其中,"\b"用于匹配单词边界,".*"表示匹配任意字符(包括空格、标点符号等),"\bapple\b"和"\bbanana\b"分别匹配单词"apple"和"banana"本身。 ### 回答2: 正则表达式是一种用来模式匹配字符串的工具,可以很方便地匹配字符串中的特定模式。如果想要匹配两个词的中间,可以使用正则表达式中的"\\b"元字符来表示单词的边界。 假设需要匹配字符串中的"word1"和"word2"之间的内容,可以使用以下正则表达式进行匹配:\\bword1\\b.*\\bword2\\b 其中,"\\bword1\\b"表示匹配"word1"这个单词,"\\b"表示单词的边界。".*"表示匹配0个或多个任意字符,因此可以匹配两个词之间的内容。最后,"\\bword2\\b"表示匹配"word2"这个单词。 通过使用这个正则表达式进行匹配,可以找到字符串中"word1"和"word2"之间的内容。需要注意的是,这个正则表达式是区分大小写的,如果要忽略大小写,可以在表达式前面加上"(?i)"来表示不区分大小写。 ### 回答3: 要匹配两个词之间的字符,我们可以使用正则表达式中的特殊字符"\b"。"\b"可以表示单词的边界,即单词的开头和结尾。所以,要匹配两个词之间的字符,我们可以使用正则表达式:\bword1\b.*\bword2\b。其中,word1表示第一个词,word2表示第二个词。 通过上述正则表达式,我们可以找到两个词之间的字符。其中,"\bword1\b"会匹配第一个词,".*"表示匹配0个或多个任意字符,而"\bword2\b"会匹配第二个词。 举个例子,我们要找出句子中"apple"和"banana"之间的字符。我们可以使用正则表达式"\bapple\b.*\bbanana\b"。这个正则表达式可以匹配类似于"I like to eat apple and banana"的句子,并返回" apple and "。 需要注意的是,正则表达式是大小写敏感的,所以上述例子只能匹配"apple"和"banana"的精确拼写。如果想忽略大小写,可以在正则表达式开头加上"(?i)",即"(?i)\bapple\b.*\bbanana\b"。 综上所述,我们可以使用正则表达式"\bword1\b.*\bword2\b"来匹配两个词之间的字符。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值