Mik*_*ike -1 .net c# regex windows
我正在使用Regex.Match方法在文件中查找信用卡号(用于PCI合规性)
我通过文件的行(strLine)进行交互,并检查每个文件与正则表达式(m_strRegEx):
Regex.Match(strLine, m_strRegEx)
string strLine = "4111111111111111"
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如果该行包含其他字符,例如strLine可能=:
string strLine = "fhj*4111111111111111op)"
Run Code Online (Sandbox Code Playgroud)
正则表达式然后没有选择cc号码,怎么可能克服这个问题?
我正在使用的正则表达式是:
^4[0-9]{12}(?:[0-9]{3})?$
Run Code Online (Sandbox Code Playgroud)
这是因为你的正则表达式用和固定在字符串的开头和结尾.这意味着整个字符串必须与您的正则表达式匹配,而不仅仅是子字符串.^$
从正则表达式中删除^和$执行子字符串匹配:
4[0-9]{12}(?:[0-9]{3})?
Run Code Online (Sandbox Code Playgroud)
快速测试:
PS> 'fhj*4111111111111111op)' -match '4[0-9]{12}(?:[0-9]{3})?'; $Matches
True
Name Value
---- -----
0 4111111111111111
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |