Regex 正则表达式与十进制字母匹配
我有以下字符串3.14、123.56f、.123e5f、123D、1234、343E12、32。 我要做的是匹配上述输入的任意组合。到目前为止,我从以下几点开始:Regex 正则表达式与十进制字母匹配,regex,Regex,我有以下字符串3.14、123.56f、.123e5f、123D、1234、343E12、32。 我要做的是匹配上述输入的任意组合。到目前为止,我从以下几点开始: ^[0-9]\d*(\.\d+) 我意识到我必须逃避现实。因为它本身就是一个正则表达式 谢谢。可能吧 ^(\d+(\.\d+)?|\.\d+)([eE]\d+)?[fD]?$ 作为旁注,我已经使D与f之外的所有组件兼容 如果需要正号和负号,请在^后面添加[+-]? ^(\d+(\.\d+)?|\.\d+)([eE]\d+)?[f
^[0-9]\d*(\.\d+)
我意识到我必须逃避现实。因为它本身就是一个正则表达式
谢谢。可能吧
^(\d+(\.\d+)?|\.\d+)([eE]\d+)?[fD]?$
作为旁注,我已经使D
与f
之外的所有组件兼容
如果需要正号和负号,请在^
后面添加[+-]?
^(\d+(\.\d+)?|\.\d+)([eE]\d+)?[fD]?$
作为旁注,我已经使D
与f
之外的所有组件兼容
如果需要正号和负号,请在
^
之后添加[+-]?
,这将匹配所有这些:
[0-9.]+(?:[Ee][0-9.]*)?[DdFf]?
请注意,在字符类(方括号)中,点
不是特殊字符,不应转义。这将匹配所有这些字符:
[0-9.]+(?:[Ee][0-9.]*)?[DdFf]?
请注意,在字符类(方括号)中,点
不是特殊字符,不应转义。您可以使用它进行测试,但这似乎适用于所有这些示例:
^\d*\.?(\d*[eE]?\d*)[fD]?$
您可以使用来测试它,但这似乎适用于所有这些示例:
^\d*\.?(\d*[eE]?\d*)[fD]?$
也许是那个
^\d*(?:\.\d+)?(?:[eE]\d+)?(?:[fD])?$
与
也许是那个
^\d*(?:\.\d+)?(?:[eE]\d+)?(?:[fD])?$
与
如果尚未提出,这也应该可行
try {
Pattern regex = Pattern.compile("\\.?\\b[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?[fD]?\\b", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
// matched text: regexMatcher.group()
// match start: regexMatcher.start()
// match end: regexMatcher.end()
}
} catch (PatternSyntaxException ex) {
// Syntax error in the regular expression
}
如果尚未提出,这也应该可行
try {
Pattern regex = Pattern.compile("\\.?\\b[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?[fD]?\\b", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
// matched text: regexMatcher.group()
// match start: regexMatcher.start()
// match end: regexMatcher.end()
}
} catch (PatternSyntaxException ex) {
// Syntax error in the regular expression
}
您使用正则表达式的语言是什么?您知道为什么有时使用
[0-9]
有时\d
?尚不清楚d
是什么以及它与哪些修饰符兼容。你能澄清一下上面输入的是什么意思吗?@xanatos我实际上是想找出一个通用正则表达式,但主要是针对java和浮点数字常量的。你使用的是什么语言来自的正则表达式?您知道为什么有时使用[0-9]
有时\d
?尚不清楚d
是什么以及它与哪些修饰符兼容。你能澄清一下上面输入的是什么意思吗?@xanatos我实际上是想找出一个通用的正则表达式,但主要是针对java和浮点数字常量。是的,但是您使用了非捕获组,并且您的正则表达式将成功地获得空字符串(您有所有可选项)。使用正则表达式的每个人在之前或之后都会丢失!:-):-)这是唯一的硬道理。是的,但是您使用了非捕获组,并且您的正则表达式将成功地获得空字符串(您有所有选项)。使用正则表达式的每个人在之前或之后都会丢失!:-):-)这是唯一的硬道理。警告:正如上面的xanatos所指出的:这也适用于空字符串。警告:正如上面的xanatos所指出的:这也适用于空字符串。