0

我有一个字符串列表,例如:Ø20X400 我需要提取第一个数字 - 在 Ø 和 X 之间

到目前为止,我已经将这些数字与一般的数字相匹配\d+- 就像它一样简单......但我需要一个表达式来分离第一个值,而不是两者......

4

5 回答 5

3

您可以使用环视(?<=..)(?=..)

(?<=Ø)\d+(?=X)

或 Java 风格:

(?<=Ø)\\d+(?=X)

第二种方法是使用捕获组:

Ø(\d+)X

或者

Ø(\\d+)X   

然后你可以提取组的内容。

于 2013-08-01T13:25:49.423 回答
1

我知道的正则表达式引擎解析\n为换行符。\d用于数字。

以下正则表达式为您提供捕获组中aØ和 a之间的第一个数字:X

^.*?Ø(\d+)X.*

正则表达式可视化

在 Debuggex 上实时编辑

于 2013-08-01T13:25:39.240 回答
0

这个正则表达式会为你做这件事,(\d+?)X这里有一个Rubular 来证明它。看,你想把数字组合在一起,但让它不贪心,结束评估X

于 2013-08-01T13:26:28.897 回答
0

试试这个:

\d+(?=\D)

应该找到第一个数字,前面有一些不是数字

于 2013-08-01T13:26:35.130 回答
0

使用普通的正则表达式,我会说:

Ø(\d+)X

这将找到Ø字符,后跟一个或多个数字,然后是 X。此外,数字将存储在第一个捕获组中。捕获组因一种正则表达式实现而异,但通常用 表示\1。捕获组零,\0通常是匹配的字符串本身。在此版本中,\d表示数字 0-9,但如果您的正则表达式引擎\n用于此目的,请使用:

Ø(\n+)X

于 2013-08-01T13:34:10.687 回答