我有一个字符串列表,例如:Ø20X400
我需要提取第一个数字 - 在 Ø 和 X 之间
到目前为止,我已经将这些数字与一般的数字相匹配\d+
- 就像它一样简单......但我需要一个表达式来分离第一个值,而不是两者......
我有一个字符串列表,例如:Ø20X400
我需要提取第一个数字 - 在 Ø 和 X 之间
到目前为止,我已经将这些数字与一般的数字相匹配\d+
- 就像它一样简单......但我需要一个表达式来分离第一个值,而不是两者......
您可以使用环视(?<=..)
和(?=..)
:
(?<=Ø)\d+(?=X)
或 Java 风格:
(?<=Ø)\\d+(?=X)
第二种方法是使用捕获组:
Ø(\d+)X
或者
Ø(\\d+)X
然后你可以提取组的内容。
这个正则表达式会为你做这件事,(\d+?)X
这里有一个Rubular 来证明它。看,你想把数字组合在一起,但让它不贪心,结束评估X
。
试试这个:
\d+(?=\D)
应该找到第一个数字,前面有一些不是数字
使用普通的正则表达式,我会说:
Ø(\d+)X
这将找到Ø
字符,后跟一个或多个数字,然后是 X。此外,数字将存储在第一个捕获组中。捕获组因一种正则表达式实现而异,但通常用 表示\1
。捕获组零,\0
通常是匹配的字符串本身。在此版本中,\d
表示数字 0-9,但如果您的正则表达式引擎\n
用于此目的,请使用:
Ø(\n+)X