【问题标题】:Replace letter only if found at start of word in c#仅当在 c# 中的单词开头找到时才替换字母
【发布时间】:2014-12-15 18:08:57
【问题描述】:

我找不到明确的答案,所以我发布了一个问题。

我想在字符串中的每个单词的字母中添加一些 bbcode,但前提是在字符串的开头找到该字母。它应该添加到单词开头的大小写字母。

例如它将替换:

string s = "Alan ate an apple";

与:

[bbcode]A[/bbcode]lan [bbcode]a[/bbcode]te [bbcode]a[/bbcode]n [bbcode]a[/bbcode]pple

无法弄清楚如何实现这一点:/

【问题讨论】:

    标签: c# regex


    【解决方案1】:

    搜索正则表达式:

    (\b[Aa])
    

    替换为:

    [bbcode]$1[/bbcode]
    

    RegEx Demo

    这里的搜索正则表达式是:(\b[Aa]) 匹配字母 aA 仅在单词边界之后 \b 因此仅匹配单词的第一个字母。

    【讨论】:

    • 太棒了,虽然我应该提到,对于每种情况,我只想替换一个特定的字母,而不是字母表中的任何字母。因此,在我之前的示例中,我想替换字母 A/a。
    • 我确实在我的演示中使用了Alan ate an apple,它产生:[bbcode]A[/bbcode]lan [bbcode]a[/bbcode]te [bbcode]a[/bbcode]n [bbcode]a[/bbcode]pple 作为输出。再次查看演示链接。
    • 谢谢阿努巴瓦。抱歉,我可能举了一个不好的例子。让我们说:“艾伦吃了一根香蕉”。它只会替换以 A 或 a 开头的单词。而不是字母表中的任何字母。对不起,如果我不够清楚
    • 知道了!完美的!谢谢!
    猜你喜欢
    • 2014-09-13
    • 2019-10-28
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 2011-03-20
    相关资源
    最近更新 更多