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
的额外步骤。