0

你们中的任何人都可以解释以下代码吗?例如,为什么使用 D,d?

NOT(REGEX(Phone, "\\D*?(\\d\\D*?){10}"))
4

2 回答 2

3

由于 Java 的字符串转义规则,使用双反斜杠。纯正则表达式意味着:

\D*?   # Match any number of non-digit characters (the "?" is useless here)
(      # Match...
 \d    # a single digit
 \D*?  # optionally followed by any number of non-digits (again, useless "?")
){10}  # Repeat the previous group 10 times.

所以这个正则表达式匹配任何正好包含十位数字(加上任意数量的其他非数字字符)的字符串。

于 2012-10-25T09:36:39.390 回答
0

如果您在Salesforce中使用示例中的 REGEX ,它是没有用的。它匹配“this1234567890that”,其中“this”和“that”可以是任何值。我用: NOT( REGEX(Phone, "\([0-9]{3}\) [0-9]{3}-[0-9]{4}|\d{10}")) 来完成期望的行为。

我的版本翻译为:

\\(      # Match '('
[0-9]{3} # Match 3 digits
\\)      # Match ')' followed by a space 
[0-9]{3} # Match 3 digits
-        # Match hyphen
[0-9]{4} # Match 4 more digits
|\\d{10} # or match 10 digits instead of all the previous
于 2012-10-26T14:55:49.047 回答