Javascript 检测字符串中的数字、Pi和e
我有一个regexJavascript 检测字符串中的数字、Pi和e,javascript,regex,Javascript,Regex,我有一个regex/(?\d+(\.\d{1,2})/g来捕获负数、十进制数或正数。我还希望能够捕获特殊符号,特别是πe 我所尝试的: /(?\d+(\.\d{1,2})|πe)/g 如何捕获这两个符号一个表达式,如234π2,43.1πe或3π1e43e,是一个工作正则表达式,它捕获所有字符串中的数字、修饰符(当前为+-)和特殊字符,而不包含其他字符。请注意,您的e可能会捕获文本中无意的es。由于缺少其他测试用例,这是我能做的最好的了 [-+.]?[πe]?\d+[πe]? 第一部分是一
/(?\d+(\.\d{1,2})/g
来捕获负数、十进制数或正数。我还希望能够捕获特殊符号,特别是πe
我所尝试的:
/(?\d+(\.\d{1,2})|πe)/g
234π2
,43.1πe
或3π1e43e
,是一个工作正则表达式,它捕获所有字符串中的数字、修饰符(当前为+-)和特殊字符,而不包含其他字符。请注意,您的e
可能会捕获文本中无意的e
s。由于缺少其他测试用例,这是我能做的最好的了
[-+.]?[πe]?\d+[πe]?
e
可能会捕获文本中无意的e
s。由于缺少其他测试用例,这是我能做的最好的了
[-+.]?[πe]?\d+[πe]?
/-?(\d*)(\d+)/
这是你的符号:/[πe]/
现在我们结合这两个来匹配倍数,比如234π2
/(((((\d*)(\d+)|([πe]))+/
修理
该模式也与Casimir et Hippolyte指出的-1-1-1
或.1.1
相匹配。要解决此问题,请执行以下操作:
第一部分仍然是一个数字或符号:/(((\d*\)?\d+)[πe])/
但是我们将使用一个不允许使用符号或小数的新表达式,而不是简单地重复使用表达式,例如.1
:/(((\d+\)?\d+)|[πe])/
把它们放在一起:/((((\d*\)?\d+)|[πe])(((\d+\)?\d+)|[πe])*/
(我也删除了不必要的括号。)我假设您使用JS
只需将其用于(负数):/-?(\d*)(\d+)/
这是你的符号:/[πe]/
现在我们结合这两个来匹配倍数,比如234π2
/(((((\d*)(\d+)|([πe]))+/
修理
该模式也与Casimir et Hippolyte指出的-1-1-1
或.1.1
相匹配。要解决此问题,请执行以下操作:
第一部分仍然是一个数字或符号:/(((\d*\)?\d+)[πe])/
但是我们将使用一个不允许使用符号或小数的新表达式,而不是简单地重复使用表达式,例如.1
:/(((\d+\)?\d+)|[πe])/
把它们放在一起:/((((\d*\)?\d+)|[πe])(((\d+\)?\d+)|[πe])*/
(我还删除了不必要的括号。)由于正则表达式没有完全标准化,因此带有此标记的所有问题还应包括一个指定适用编程语言或工具的标记。-哪种语言,PHP?你说得对。道歉。由于正则表达式未完全标准化,所有带有此标记的问题还应包括一个指定适用编程语言或工具的标记。-哪种语言,PHP?你说得对。道歉。更正:您的模式也匹配:
-1-1-1-1
或.1.1.1
。不确定是否需要这种结果。您的模式也匹配:-1-1-1-1
或.1.1.1
。不确定这种结果是否是预期的。