我需要检查文件是否包含与特定格式匹配的金额:
我现在有:
\d{1,15}(,\d{1,14})?
但它不符合要求,因为我可能会赶上30个字符在这里。
^(?=.{1,15}$)\d+(,\d+)?$
^
(?=.{1,15}$)
\d+
(,\d+)?
$
对于Java,您可能必须转义反斜杠: ^(?=.{1,15}$)\\d+(,\\d+)?$
^(?=.{1,15}$)\\d+(,\\d+)?$
更新:如果你在另一个字符串中间寻找这个,使用单词边界 \b 而不是字符串边界( ^ 和 ).
\b
\b(?=[\d,]{1,15}\b)\d+(,\d+)?\b
对于java:
"\\b(?=[\\d,]{1,15}\\b)\\d+(,\\d+)?\\b"
更具可读性的版本:
"\\b(?=[0-9,]{1,15}\\b)[0-9]+(,[0-9]+)?\\b"