PHP正则表达式在文本之前获取数字
有人能帮我用php编写正则表达式吗 这是我的正则表达式:PHP正则表达式在文本之前获取数字,php,regex,match,Php,Regex,Match,有人能帮我用php编写正则表达式吗 这是我的正则表达式: (?:\d*(\,)\d*)(\,\d*)?(\,\d*)?(\,\d*)? 这是我的测试数据: 1~2906730 RX 1-'2733975 Rx /132882 RX mu UU Au '2(*u 182/rX….212 我需要匹配“RX”或“RX”或“RX”之前的数字。 在上面的代码中,最后一行中的数字不匹配,因为它缺少一个“,” 我相信有更好的方法可以做到这一点。现在我的正则表达式甚至没有检查它后面是否跟有“RX” 任何帮助都
(?:\d*(\,)\d*)(\,\d*)?(\,\d*)?(\,\d*)?
这是我的测试数据:
1~2906730 RX
1-'2733975 Rx
/132882 RX mu UU Au
'2(*u 182/rX….212
我需要匹配“RX”或“RX”或“RX”之前的数字。
在上面的代码中,最后一行中的数字不匹配,因为它缺少一个“,”
我相信有更好的方法可以做到这一点。现在我的正则表达式甚至没有检查它后面是否跟有“RX”
任何帮助都将不胜感激!
解决方案可能会以php代码发布。我认为这样做可以:
preg_match('/\d{1,3}(?:,\d{3}+)*(?= rx)/i', $data, $match);
?=
是一个——它要求前面的regexp后面跟这个组。并且i
使regexp不区分大小写,因此它将匹配RX
、RX
或任何组合
我认为这样做可以:
preg_match('/\d{1,3}(?:,\d{3}+)*(?= rx)/i', $data, $match);
?=
是一个——它要求前面的regexp后面跟这个组。并且i
使regexp不区分大小写,因此它将匹配RX
、RX
或任何组合
我认为这样做可以:
preg_match('/\d{1,3}(?:,\d{3}+)*(?= rx)/i', $data, $match);
?=
是一个——它要求前面的regexp后面跟这个组。并且i
使regexp不区分大小写,因此它将匹配RX
、RX
或任何组合
我认为这样做可以:
preg_match('/\d{1,3}(?:,\d{3}+)*(?= rx)/i', $data, $match);
?=
是一个——它要求前面的regexp后面跟这个组。并且i
使regexp不区分大小写,因此它将匹配RX
、RX
或任何组合
您不需要转义逗号。匹配任何数字和点的组合(最简单的方法)都可以使用
[\d.]+
可以按字面或用\s
标注空格,结尾的文字RX
可以使用/i
不区分大小写标志。不需要转义逗号。匹配任何数字和点的组合(最简单的方法)可以用[\d]完成+
可以按字面或用\s
标注空格,结尾的文字RX
可以使用/i
不区分大小写标志。不需要转义逗号。匹配任何数字和点的组合(最简单的方法)可以用[\d]完成+
可以按字面或用\s
标注空格,结尾的文字RX
可以使用/i
不区分大小写标志。不需要转义逗号。匹配任何数字和点的组合(最简单的方法)可以用[\d]完成+
,空格可以按字面或用\s
标注,末尾的文字RX
可以使用/i
不区分大小写标志。如果逗号用作千位分隔符,更好的正则表达式将是“/\\d{1,3}(?:,\\d{3})*(?=RX)/i”但我承认这个问题的作者已经不清楚了。@ SharanyaDutta Thx。你不需要在单引号串中加倍反斜杠。我把正则表达式写为双引号字符串。你可以考虑使用<代码> PrggMatMatHyLo.<代码>而不是<代码> PrggMatals<代码>。所有匹配值,不仅仅是第一个。我不知道OP是一次处理所有输入数据还是逐行处理输入数据。似乎他的主要问题是正确使用regexp,而不是使用它的PHP语法。在匹配str_replace()后,可以删除逗号
。如果将逗号用作千位分隔符,则更好的正则表达式是“/\\d{1,3}(?:,\\d{3})*(?=rx)/i”但我承认这个问题的作者已经不清楚了。@ SharanyaDutta Thx。你不需要在单引号串中加倍反斜杠。我把正则表达式写为双引号字符串。你可以考虑使用<代码> PrggMatMatHyLo.<代码>而不是<代码> PrggMatals<代码>。所有匹配值,不仅仅是第一个。我不知道OP是一次处理所有输入数据还是逐行处理输入数据。似乎他的主要问题是正确使用regexp,而不是使用它的PHP语法。在匹配str_replace()后,可以删除逗号
。如果将逗号用作千位分隔符,则更好的正则表达式是“/\\d{1,3}(?:,\\d{3})*(?=rx)/i”但我承认这个问题的作者已经不清楚了。@ SharanyaDutta Thx。你不需要在单引号串中加倍反斜杠。我把正则表达式写为双引号字符串。你可以考虑使用<代码> PrggMatMatHyLo.<代码>而不是<代码> PrggMatals<代码>。所有匹配值,不仅仅是第一个。我不知道OP是一次处理所有输入数据还是逐行处理输入数据。似乎他的主要问题是正确使用regexp,而不是使用它的PHP语法。在匹配str_replace()后,可以删除逗号
。如果将逗号用作千位分隔符,则更好的正则表达式是“/\\d{1,3}(?:,\\d{3})*(?=rx)/i”但我承认这个问题的作者已经不清楚了。@ SharanyaDutta Thx。你不需要在单引号串中加倍反斜杠。我把正则表达式写为双引号字符串。你可以考虑使用<代码> PrggMatMatHyLo.<代码>而不是<代码> PrggMatals<代码>。所有匹配值,不仅仅是第一个。我不知道OP是一次处理所有输入数据还是逐行处理输入数据。似乎他的主要问题是正确使用regexp,而不是使用它的PHP语法。在匹配str_replace()
后,可以删除逗号。