我有一个字符串列表,例如:Ø20X400
我需要提取第一个数字 - 在Ø和X之间
我到目前为止与\d+
的数字相匹配 - 就像它一样简单......
但我需要一个表达式来分隔第一个值,而不是两个......
答案 0 :(得分:3)
您可以使用外观(?<=..)
和(?=..)
:
(?<=Ø)\d+(?=X)
或Java风格:
(?<=Ø)\\d+(?=X)
第二种方法是使用捕获组:
Ø(\d+)X
或
Ø(\\d+)X
然后您可以提取该组的内容。
答案 1 :(得分:1)
答案 2 :(得分:0)
此正则表达式将为您执行此操作(\d+?)X
,此处为Rubular to prove it。请参阅,您希望将数字组合在一起,但要使其不贪婪,从而结束对X
的评估。
答案 3 :(得分:0)
试试这个:
\d+(?=\D)
应该找到第一个未提前数字的号码
答案 4 :(得分:0)
使用正常的正则表达式,我会说:
Ø(\d+)X
这会找到Ø
字符,后跟一个或多个数字,后跟一个X.此外,这些数字将存储在第一个捕获组中。捕获组从一个正则表达式实现到另一个正则表达式不同,但通常用\1
表示。捕获组零\0
通常是匹配的字符串本身。在此版本中,\d
表示数字0-9,但如果您的正则表达式引擎使用\n
用于此目的,请使用:
Ø(\n+)X