如何获取以 ^ 开头和结尾的单词
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
如果对您有帮助,请不要忘记投票。
【讨论】:
以上是关于如何获取以 ^ 开头和结尾的单词的主要内容,如果未能解决你的问题,请参考以下文章
如何在以特定单词开头并以另一个单词结尾的字符串中出现多次[重复]