如何获取以 ^ 开头和结尾的单词

Posted

技术标签:

【中文标题】如何获取以 ^ 开头和结尾的单词【英文标题】:How to get words starting and ending with ^ 【发布时间】:2019-12-02 10:38:42 【问题描述】:

我有这个字符串:

“lorem ipsum 这是^一些要使用的文本^例如”

我怎样才能只获得以 ^ 开头和结尾的单词?

所以结果应该是:“一些要使用的文本”

使用 c# 正则表达式或任何其他方式。

【问题讨论】:

你尝试了什么?什么没有奏效。您必须至少在询问之前表明您尝试过某事 您自己尝试过什么吗?我们可以简单地给你答案,你很可能会得到答案,但最好是你表现出你付出的任何努力,让成员通过纠正你所犯的任何错误来引导你找到正确的答案。 您可以使用拆分并取第二个索引不需要正则表达式 【参考方案1】:
Regex.Match(s, @"\^.+\^").Value

会给你:^一些使用的文字^

Regex.Match(s, @"\^(.+)\^").Groups[1]

会给你:一些使用的文字

【讨论】:

【参考方案2】:

试试这个:

\^\K\b[^\^]+

Here is Demo

Regex.Match(myString, @"\^\K\b[^\^]+").Value;

= "一些要使用的文字"

如果你有一场比赛 - 你不需要组。如果你不止一个 - 你必须使用组。

【讨论】:

【参考方案3】:

这种方式比正则表达式更好。 String 类为您提供了获得所需内容的方法。 另外,没有必要用模式污染代码

试试这个:

    string text= "lorem ipsum this is ^some text to use^ for example";

    var selectedtext = (text.Split('^')[1]);

【讨论】:

这取决于“更好”的定义,并且可能需要一些基准测试作为证据。但是,是的,这很可能是最简单的解决方案。 它有它的缺点,尽管他应该检查数组的长度并处理许多情况以避免异常 对我来说完全不需要导入正则表达式命名空间。 问题中没有提到它,但它可能是相关的。如果需要捕获多个模式匹配,则会失败,因为它只会获取第一个。它也可能错误地得到文本的后半部分,由于某种原因,只有一个“^”存在。而正则表达式会忽略,除非完全匹配。 字符 '^' 可能会随着时间而改变,他可以处理边缘情况以制作可重用的代码段【参考方案4】:

试试这个

(?<=\^\s*).+(?=\s*\^)

这会给你类似的结果,不包括 ^ 符号

some text to use

如果对您有帮助,请不要忘记投票。

【讨论】:

以上是关于如何获取以 ^ 开头和结尾的单词的主要内容,如果未能解决你的问题,请参考以下文章

如何在以特定单词开头并以另一个单词结尾的字符串中出现多次[重复]

如何使用 JQuery/CSS 选择所有以某个单词开头、包含或结尾的单元格?

Swift:获取String中单词的开头和结尾字符的索引

如何计算以字符串开头的单词数

如何在NSString中每个单词的开头和结尾添加一个字符

python_如何判断字符串a以某个字符串开头或结尾?