2010-08-25 64 views
2

说我有一个像搜索字符串:“你好,[NAME],你今天怎么我精”Coverting一个基本的搜索字符串正则表达式

如果我是使用正则表达式来搜索文本,我将不得不将其转换为类似的信息(假设“\”是一个有效的正则表达式搜索一个空格):

“\你好\ \ [NAME \],\ H​​ow \ are \ you \ today \?\ I \ am \ fine。“

现在,在我开始尝试编写一个函数来做到这一点之前,我自己有没有意识到已经进行了这种转换? (Eclipse会做一些这样的事情;即使你没有将搜索模式设置为正则表达式,它也会在搜索之前将其所有搜索转换为正则表达式)。

我在这个例子中的目标是C#,但随意添加其他语言,因为其他人可能会对Java,Python等人的类似事情感兴趣。

+0

您不需要在正则表达式中设置空格(除非您设置了IgnorePatternWhitespace标志)。 – Jens 2010-08-25 15:25:25

+0

@Jens您不需要,但即使未设置标志,也不会在转义空间中造成伤害。如果您正在编写一个方法来执行转义,那么您可能想要转义空格,以便在使用返回的模式时不必关心是否设置IgnorePatternWhitespace。 – stevemegson 2010-08-25 15:50:22

+0

如果我没有,那么: ''你好\ \ \ \ [名称] ....“(即有多个空格)。 会匹配,这不是我想要的。 – cyborg 2010-08-25 15:50:36

回答

4

Regex.Escape(string)将返回与提供的文字字符串匹配的正则表达式模式。

具体来说,它逃脱了\*+?|{[()^$.#和空格。

+0

看起来很完美 - 我会给它一个旋转。 – cyborg 2010-08-25 15:19:47

相关问题