当前位置: 首页 > 面试题库 >

用某些单词替换可变长度字符串

夏侯弘量
2023-03-14
问题内容

给定以下字符串

Declare @string varchar(max)='abc ___________ deffns ___ cg _ hif _______hh ihs';

这是所需的输出:( 每个长号,无论长度如何,都应替换为姓氏)

abc lastname deffns lastname cg lastname hif lastname hh ihs

这里的问题是,可能有很多Hypens可变长度(最大长度可以<20)…

我尝试了 多种 方法,并采用了以下方法。

select 
REPLACE(REPLACE(replace(stringcol,replicate('_',20),'LASTNAME'),
replicate('_',19),'LASTNAME'),
replicate('_',18),'LASTNAME')
 from table

有没有办法有效地做到这一点..任何建议将是最欢迎的


问题答案:

首先删除多个下划线,然后进行替换。

这是一种方法:

select replace(replace(replace(@string, '_', '><'
                              ), '<>', ''
                      ), '><', 'LASTNAME'
              )


 类似资料:
  • 我有一个阿拉伯语的文本字符串,我想让一些单词加粗,并在单词前添加图标 我在英文文本中使用的方法是 当我在阿拉伯语单词中使用这种方法时,它不起作用 测试用文本: :,, .阿司匹林:, 这是一个很好的例子

  • 我正在努力解决一个关于正则表达式的小问题。 我想用另一个长度相同但字符不同的子字符串替换特定字符的所有奇数长度子字符串。指定字符的所有偶数序列应保持不变。 一个字符串包含字母a、b和y,y的所有奇数长度序列都应替换为z: 另一个可能的例子是: 变成 使用正则表达式匹配所有奇数长度的序列没有问题。 不幸的是,我不知道如何将这些匹配的长度信息合并到替换字符串中。我知道我必须以某种方式使用反向引用/捕获

  • 我想在我的java代码时,字符co是输入在一个文本区域对象的单独行。为mputer拼出单词computer,然后转到下面的下一行。你可以在下面的gif中看到我正在寻找的东西。我在下面的关键监听器类中添加了一些我已经尝试过的代码。

  • 问题内容: 如何用另一部分替换字符串的特定部分? 输入字符串: 如何用其他方式更改字符串中的全部? 我认为我需要一个循环,但是我不确定如何使用它。 问题答案: 或者更精确地回答您的问题:

  • 问题内容: 我正在使用一个喜欢: 我使用的是哪里。这行代码对我不起作用。我想知道自己在做什么错? 问题答案: 尽管看起来可能存在一些语法问题,但是代码看起来或多或少还可以。这是一个工作示例:

  • 问题内容: 通过这个代码,我试图取代确切的词用。但是,如果运行此命令,它将仅在我希望打印时打印,这与包含它的单词不同。我怎样才能解决这个问题?谢谢 问题答案: 使用带有单词边界 的正则表达式: 边界符号的反斜杠必须转义,因此为双反斜杠。