当前位置: 首页 > 知识库问答 >
问题:

从特定单词后面的字符串返回一个数字

谷梁玺
2023-03-14

我想从string中得到一个子字符串。

我想要的子字符串是一个数字字符序列。

输入

"abcdefKD-0815xyz42ghijk";
"dag4ah424KD-42ab333k";
"BeverlyHills90210KD-433Nokia3310";

通常可以是任何字符串,但它们都有一个共同点:

  • 有一个部分以KD-
  • 开头
  • 并以数字结尾
  • 数字之后的所有内容都将消失。

在上面的示例中,这个数字将分别为081542433。但它可以是任何数字

现在我有一个子字符串,它包含KD之后的所有数字字符--但我希望只有字符串的0815ish部分。

我目前所拥有的

String toMakeSub = "abcdef21KD-0815xyz429569468949489694694689ghijk";
toMakeSub = toMakeSub.Substring(toMakeSub.IndexOf("KD-") + "KD-".Length);
String result = Regex.Replace(toMakeSub, "[^0-9]", "");

结果是0815429569468949489694694689,但我只想要0815(它可以是任何长度,但不可能在四位之后剪切)。

共有1个答案

于恺
2023-03-14

它和下面的模式一样简单

(?<=KD-)\d+

阅读这个的方法

(?<=subpatter):零宽度的正后视镜断言。仅当子模式在左侧匹配时才继续匹配。

\d:匹配任何十进制数字。

+:与上一个元素匹配一次或多次。

示例

var input = "abcdef21KD-0815xyz429569468949489694694689ghijk";
var regex = new Regex(@"(?<=KD-)\d+");
var match = regex.Match(input);

if (match.Success)
{
   Console.WriteLine(match.Value);
}

input = "abcdef21KD-0815xyz429569468949489694694689ghijk, KD-234dsfsdfdsf";

// or to match multiple times
var matches = regex.Matches(input);

foreach (var matchValue in matches)
{
   Console.WriteLine(matchValue);
}
 类似资料:
  • 我创建了一个方法来输出字符串。使用split方法和for循环,我将句子中的每个单词添加到字符串数组中,将每个单词的最后两个字母替换为“ed”。现在,我的return语句应该返回每个单词。当我用system.out.print时,它起作用了。当我使用一个return并在我的main方法中调用它时,我得到这样的输出:“[Ljava.lang.String;@1B6235B” 这个错误看起来很简单,但我

  • 问题内容: 我正在使用。 我想删除句子中所有出现的特定单词,但是我不想删除包含z或AZ之间其他字符的任何其他单词。 例如 ,以下是我要删除的句子: 预期产量 : 请注意,如果该单词包含+和之前或之后的任何其他单词,我也想删除它。 到目前为止,这是我尝试过的: 我正在输出: 在上面的输出中,我期望不被替换,应该完全替换。 我应该如何实现呢?任何建议将不胜感激。 编辑: 为清楚起见,这是我正在寻找的另

  • 我正在通过JSON提取twitter用户的个人资料图像。为此,我的代码是: 返回配置文件图像的url。url的格式可以是或或或等。 现在我想从我收到的每个网址中删除“_normal”部分。如何在php中实现这一点?我厌倦了尝试它。请帮助。

  • 我是新的java和卡在如何返回已输入的整个地址,因为我目前只返回第一个字。下面是代码: 如果有任何帮助,我将不胜感激。

  • 问题内容: 我需要从字符串中删除一个特定的单词。 但我发现python strip方法似乎无法识别有序单词。只需删除传递给参数的所有字符。 例如: 如何使用python剥离指定的单词? 问题答案: 使用。 或者使用和使用正则表达式。这将允许删除前导/尾随空格。

  • 我得到以下字符串: 我想从里面拿走食物和饮料。 我尝试了以下代码: 但它给人的感觉是,食物很刺激,喝了很多,离食物很近,三个和四个。