【问题标题】:Find a specific string within another string without getting similar results在另一个字符串中查找特定字符串而不会得到类似的结果
【发布时间】:2012-02-06 21:20:22
【问题描述】:

在控制台应用程序中,我得到一个文件的 RTF(富文本格式)代码作为输入。源是通过查询收集的数据库和数据。

我的目标是搜索作为字符串的输入代码中是否存在代码:\par(RTF 中的回车符结束)。
我尝试使用 string.IndexOf 和 string.Contains 但都返回了不好的结果,因为它们也匹配如下代码:“\pard”。

给定一个字符串,如:

{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}
{\f1\fnil\fcharset0 MS Sans Serif;}  
\deflang1033\pard\plain\tx0\f2\lang1033\fs20\cf1 Payment}

我如何构建条件以使其返回 false,因为字符串 not 包含 \par?最终我怎么能设置一个正则表达式来准确地说关键字“\par”(所以长度为 4 个字符)并且没有其他匹配?谢谢。

编辑:使用的语言是 C#,我正在使用 VS 2010 开发控制台应用程序。

【问题讨论】:

    标签: c# regex search substring


    【解决方案1】:

    您没有告诉我们您使用的语言,但通常您需要这样的词边界:

    \\par\b
    

    确保后面没有单词字符

    【讨论】:

    • 这会在 string.Contais("\\par\b") 中吗?还是在正则表达式中?
    • 不,这是正则表达式语法。在 C# 中,您可以执行例如Regex.IsMatch(text, @"\\par\b")text 包含模式时返回 true(否则返回 false)
    猜你喜欢
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    相关资源
    最近更新 更多