Regex 从字符串中取出两个数字中的一个

Regex 从字符串中取出两个数字中的一个,regex,Regex,我有一个字符串列表,例如:Ø20X400 我需要提取第一个数字-在Ø和X之间 到目前为止,我将这些数字与\d+-简单地匹配起来。。。 但是我需要一个表达式来分离第一个值,而不是两个…我知道的正则表达式引擎将\n解析为换行符\d用于数字 下面的正则表达式给出了捕获组中aØ和aX之间的第一个数字: ^.*?Ø(\d+)X.* Ø(\d+)X 我知道的正则表达式引擎将\n解析为新行\d用于数字 下面的正则表达式给出了捕获组中aØ和aX之间的第一个数字: ^.*?Ø(\d+)X.* Ø(\d+)

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

到目前为止,我将这些数字与
\d+
-简单地匹配起来。。。
但是我需要一个表达式来分离第一个值,而不是两个…

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

下面的正则表达式给出了捕获组中a
Ø
和a
X
之间的第一个数字:

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


我知道的正则表达式引擎将
\n
解析为新行<代码>\d用于数字

下面的正则表达式给出了捕获组中a
Ø
和a
X
之间的第一个数字:

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


您可以使用lookarounds
(?您可以使用lookarounds
(?此正则表达式将为您执行,
(\d+?)X
),下面是一个。请看,您希望将数字分组在一起,但使其不贪婪,结束对
X
的计算,此正则表达式将为您执行,
(\d+)X
,这是一个。请参见,您想将数字分组在一起,但要使其非贪婪,结束对
X

的计算,请尝试以下方法:

\d+(?=\D)
应该找到前面没有数字的第一个数字

试试这个:

\d+(?=\D)

如果发现第一个数字前面有一些不是普通正则表达式的数字,我会说:

Ø(\d+)X

这将查找
Ø
字符,后跟一个或多个数字,后跟一个X。此外,这些数字将存储在第一个捕获组中。捕获组在不同的正则表达式实现中有所不同,但这通常由
\1
表示。捕获组零,
\0
通常是与其匹配的字符串self。在此版本中,
\d
表示数字0-9,但如果您的正则表达式引擎为此目的使用
\n
,请使用:


对于正规正则表达式,我想说:

Ø(\d+)X

这将查找
Ø
字符,后跟一个或多个数字,后跟一个X。此外,这些数字将存储在第一个捕获组中。捕获组在不同的正则表达式实现中有所不同,但这通常由
\1
表示。捕获组零,
\0
通常是与其匹配的字符串self。在此版本中,
\d
表示数字0-9,但如果您的正则表达式引擎为此目的使用
\n
,请使用:


Ø(\n+)X

如何匹配数字?
\n
表示“换行”,您想使用
\d
表示“数字”。啊,我的坏,打错了:
\n+
如何匹配数字?
\n
表示“换行”,您想使用
\d
表示“数字”。啊,我的坏,打错了:
\n>没有任何意义部分在开头,部分在结尾,除非他也想捕获整个输入。感谢到Debuggex的链接!在
^.*.*.
部分在开头,部分在结尾,除非他也想捕获整个输入。感谢到Debuggex的链接!我想我在我看到这个“lookaround”概念之前,我对正则表达式了如指掌。酷!@JimL.:lookaround是向后看和向前看的快捷方式。有关更多信息,请访问www.regular-expressions.info。在看到这个“lookaround”之前,我以为我对正则表达式了如指掌concept.Cool!@JimL.:lookaround是向后看和向前看的快捷方式。有关更多信息,请参阅www.regular-expressions.info。