Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何匹配某个字符前面的任何数字?_Java_Regex_Matcher - Fatal编程技术网

Java 如何匹配某个字符前面的任何数字?

Java 如何匹配某个字符前面的任何数字?,java,regex,matcher,Java,Regex,Matcher,我想匹配字符K前面的所有数字并提取该值 在示例中,CARRY18K将与18匹配 也许我只能用正则表达式实现这一点,但是如何实现呢? \d+K是这里的正确表达式吗?我会使用这样的表达式: \d+K 如果要捕获数字,请执行以下操作: (\d+)K 我会用这样的方法: \d+K 如果要捕获数字,请执行以下操作: (\d+)K 我想匹配字符K前面的所有数字并提取该值。 你应使用: \d+(?=K) (?=K)是一个正向的前瞻,确保数字后面紧跟着K 我想匹配字符K前面的所有数字并提取该值。 你应

我想匹配字符
K
前面的所有数字并提取该值

在示例中,
CARRY18K
将与
18
匹配

也许我只能用正则表达式实现这一点,但是如何实现呢?
\d+K
是这里的正确表达式吗?

我会使用这样的表达式:

\d+K
如果要捕获数字,请执行以下操作:

(\d+)K

我会用这样的方法:

\d+K
如果要捕获数字,请执行以下操作:

(\d+)K
我想匹配字符K前面的所有数字并提取该值。

你应使用:

\d+(?=K)
(?=K)
是一个正向的前瞻,确保数字后面紧跟着
K

我想匹配字符K前面的所有数字并提取该值。

你应使用:

\d+(?=K)

(?=K)
是一种积极的向前看,它确保数字后面紧跟着
K

您可以使用:
(\d+K
您可以使用:
(\d+K
向前看比只
\d+K
好吗?如果是,为什么?@Cruncher:问得好。答案是OP想要提取数字,而前瞻节省了对数字进行分组和从中捕获
$1
的额外步骤。前瞻是否比仅
\d+K
更好?如果是,为什么?@Cruncher:问得好。答案是OP想要提取数字,而lookahead节省了对数字进行分组和从中捕获
$1
的额外步骤。