如何使用正则表达式在单行内搜索单词

时间:2009-07-01 10:07:13

标签: visual-studio regex

string patname ="enter pat name";
patname = "text";
patname = " text pat";

嗨,我想使用visual studio的正则表达式在上面的语句中搜索“pat”。我尝试使用Pat{([^a-zA-Z]|$)}这个,但它也会搜索我真正不想要的第二行。我希望pat在一个字符串值内搜索,该字符串值从“随后的任何字符开始,然后是”pat“。我的意思是pat可以来到任何地方,即在开始,中间或结束。

有人知道怎么做吗?

6 个答案:

答案 0 :(得分:2)

所以你想在源代码中的字符串中查找“pat”吗?有一些问题......特别是:

1:处理引号很难(分隔字符串的字面部分而不是变量等) - 特别是有两种类型的转义; @“”“”和“\”“

2:在逐字字符串文字中,pat可以在下一行但仍在字符串中:

string s = @"abc
def pat ghi";

但是,对于粗略搜索,请执行以下操作:

\".+pat

可能有帮助

答案 1 :(得分:0)

应该是这样的:

/.*pat.*/

哪个。表示正则表达式中的wild char,而。*表示任何字符的出现次数

答案 2 :(得分:0)

如何使用字边界?

在Visual Studio中:

<pat>

重新阅读你的问题,你只需要在字符串中“拍”,所以

"[^"]*<pat>[^"]*"

可能是一个更好的表达方式。

答案 3 :(得分:0)

如果我理解正确的正则表达式,那么你正在寻找的只是

\".+\bpat\b

如果您希望找到整行,请使用

.*\".+\bpat\b.*

澄清:\b的平均词边界。如果你想'拍'成为单词的一部分,请删除它们。

答案 4 :(得分:0)

它不起作用,我需要在一个字符串值内搜索pat,所以我认为搜索shud开始像“[az] [pat]一样,但问题是它没有在内部搜索(”输入pat name“)

答案 5 :(得分:0)

尝试"[:a ]*<pat>[:a ]*"