Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在使用正则表达式获取两个字符之间的所有数字(包括十进制)时处理边大小写_Javascript_Regex - Fatal编程技术网

Javascript 如何在使用正则表达式获取两个字符之间的所有数字(包括十进制)时处理边大小写

Javascript 如何在使用正则表达式获取两个字符之间的所有数字(包括十进制)时处理边大小写,javascript,regex,Javascript,Regex,我正在解析一系列不同格式的字符串。遇到的最后一个edge案例让我难堪。我不是一个伟大的雷格弗,相信我,达到这一点是一个挑战 下面是我试图解析的字符串的关键片段。第二个例子是我一直坚持的当前edge案例 LBP824NW2-58.07789x43.0-207C72 LBP824WW1-77.6875 in. x 3.00 in. 24VDC 我试图获取字符串中构成维度宽度部分的所有数字(包括小数点)(这将是维度中的第一个数字)。在其他情况下有效的方法是使用以下表达式获取从“-”到“x”的所有数字

我正在解析一系列不同格式的字符串。遇到的最后一个edge案例让我难堪。我不是一个伟大的雷格弗,相信我,达到这一点是一个挑战

下面是我试图解析的字符串的关键片段。第二个例子是我一直坚持的当前edge案例

LBP824NW2-58.07789x43.0-207C72
LBP824WW1-77.6875 in. x 3.00 in. 24VDC
我试图获取字符串中构成维度宽度部分的所有数字(包括小数点)(这将是维度中的第一个数字)。在其他情况下有效的方法是使用以下表达式获取从“-”到“x”的所有数字:

/-(\d+\.?\d+?)x\B/

但是,这不适用于尺寸中包含英寸的情况。我曾想过用“回头看”或“回头看”,但我感到困惑。如有任何建议,将不胜感激

可以告诉RegEx使用
(…)?
语法查找“零或一”项内容,因此,如果您的模式已经工作,但它被一个新模式搞糊涂了,该新模式只是“在其他模式中嵌入了更多的字符串数据”,您可以添加零或一个检查,您应该可以开始了

在这种情况下,在一些战术位置放置类似于
(\s*In\.?\s*)?
的内容,要么匹配“任意数量的空格(包括无空格),然后是
中的
,然后是可选的句号,然后是任意数量的空格(包括无空格)”,要么什么都不起作用


也就是说,“我不能更改格式”几乎从来都不是一个参数,因为虽然您不能更改格式,但您几乎总是可以更改解析它的内容。RegEx可能已经足够了,但是一些代码可以检查它是什么样的通用模式,然后调用适当的函数来标记和检查特定的字符串模式。除非你被雇佣去更新一些预定义的CLi脚本,其中有一个
grep
,并且除了模式之外,你不允许触摸任何东西

可以告诉RegEx使用
(…)?
语法查找“零或一”项内容,因此,如果您的模式已经工作,但它被一个新模式搞糊涂了,该新模式只是“在其他模式中嵌入了更多的字符串数据”,您可以添加零或一个检查,您应该可以开始了

在这种情况下,在一些战术位置放置类似于
(\s*In\.?\s*)?
的内容,要么匹配“任意数量的空格(包括无空格),然后是
中的
,然后是可选的句号,然后是任意数量的空格(包括无空格)”,要么什么都不起作用


也就是说,“我不能更改格式”几乎从来都不是一个参数,因为虽然您不能更改格式,但您几乎总是可以更改解析它的内容。RegEx可能已经足够了,但是一些代码可以检查它是什么样的通用模式,然后调用适当的函数来标记和检查特定的字符串模式。除非你被雇佣去更新一些预定义的CLi脚本,其中有一个
grep
,并且除了模式之外,你不允许触摸任何东西

这是使用正则表达式的工作解决方案:
-(\d+\.?\d+?)(\s*in\.?\s*| x)
这是使用正则表达式的工作解决方案:
-(\d+\.?\d+?)(\s*in\.?\s*| x)
为了更清楚,我在示例中寻找的输出:58.07789和77.6875Sarah,您可以编辑自己的问题使其更清楚,我在示例中寻找的输出:58.07789和77.6875Sarah,您可以编辑自己的问题以使其更清楚。“但是一些代码检查它是什么类型的通用模式,然后调用适当的函数来标记和检查特定的字符串模式应该是完全可能的。”你是对的,我可以先检查字符串的格式,然后以不同的方式处理每种情况。我现在正在使用正则表达式研究可能的解决方案,接下来我将尝试这种方法。谢谢后一种方法的好处是,它也可以让您随着时间的推移清理输入。在正则表达式擅长提取的地方,它们对控制流来说是糟糕的,因此如果您根据这些识别模式和“路由”,您还可以开始做一些事情,比如向次要脚本通知所有使用较不受欢迎格式的项,这样您就可以开始更改这些项(由其他人=)这是我正在考虑的,我甚至可以编写一个辅助脚本来自动更改格式。非常感谢,这是一个非常有用的注释。“但是一些代码检查它是什么类型的通用模式,然后调用适当的函数来标记和检查特定的字符串模式应该是完全可能的。”你是对的,我可以先检查字符串的格式,然后以不同的方式处理每种情况。我现在正在使用正则表达式研究可能的解决方案,接下来我将尝试这种方法。谢谢后一种方法的好处是,它也可以让您随着时间的推移清理输入。在正则表达式擅长提取的地方,它们对控制流来说是糟糕的,因此如果您根据这些识别模式和“路由”,您还可以开始做一些事情,比如向次要脚本通知所有使用较不受欢迎格式的项,这样您就可以开始更改这些项(由其他人=)这是我正在考虑的,我甚至可以编写一个辅助脚本来自动更改格式。非常感谢,这是一个非常有用的评论。