【发布时间】:2009-10-28 13:26:36
【问题描述】:
我又一次碰壁了。
如何使用正则表达式替换转义字符? 如果制表符 (\t) 出现两次以上,我想用单个 \t 替换这两个或更多出现。 例如,如果 \t\t\t 来了,那么我只想用 \t 替换它。 如何做到这一点?
我在阅读文本文件和对其应用正则表达式方面面临另一个问题。
我正在使用 C# 来读取文本文件和正则表达式。 当我打开文本文件(具有 txt 扩展名的文件)时,我得到一个正常的文件视图。但是当我使用“textReader”读取同一个文件并将其存储到字符串中时,我会得到类似这样的文本:
好的\t\t\t\t\t\t电子邮件:
k.o@gmail.com \r电话:+ 91
992\t\r\r经验总结
\r商业智能和数据
6人以上的仓库设计师
多年OLAP工作经验
项目。\r\r\r技术\r下面是一个
重要软件产品列表
和我工作过的工具
与。\r\r软件
产品\r\a\r\a运营
系统:\rWINDOWS NT、WINDOWS 2000、
UNIX\r数据库管理
系统:\rOracle 8i、Oracle 9i、Oracle
10g,SQL-Server 7.0,DB2\r软件
包:\rVSS、ER Win、M1\rFourth
生成语言:\rPL/SQL,
SQL*PLUS\r工具 &
技术:\rOracle 仓库
生成器 10.1.0.4.0,ORACLE 9i AS,
ORACLE Discoverer 报告数据阶段
8.0、Fast Track 8.5、DB@ Cube、JavaScript、JSP、JDEV、BI BEANS、ASP、
ASP.NET, Ab
初始化\r\r\a\r\a\v\r\r\fAssignments\rThe
各种任务的详细信息
我处理过的都列在这里,
按时间顺序
订单。\r\r名称\r\aAvery Dennison 数据
仓储\r\a\r\a客户\r\aAvery
丹尼森,他在项目中挑战
是从现有
中喂养 EDW 有数据的仓库
聚合
级别。\r\a\r\a\r\r名称\r\aAOL BI
(Omniture)\仪式团队。设计,
编码和测试以及
与现场团队协调。
\r\a\r\a工具与技术\r\aUnix
平台,Oracle 10g,Py。不仅
提供正确的要求,但
表演也必须在
可接受
范围。\r\a\r\a\r\r\r\r\r\r\r\r\r\r\r\r名称\r\aAIW
事件 (ABSA)\r\a\r\aClient\r\aABSA,
南非\r\a\r\aP
即,所有转义字符,如 \s、\r、\f 都是可见的。因此,当我将相同的文本读入字符串变量时,适用于普通文本的正则表达式不起作用。
有人知道如何解决这个问题吗?
谢谢
我还有一个问题。我想匹配行尾的文本。我试图为此使用 $ 。例如,为了匹配以“assignment”结尾的文本,我使用了正则表达式 assignment$。它适用于普通文本。但是当我在流阅读器给出的文本上运行这个正则表达式时,这个正则表达式不起作用。流阅读器给出像Assignments\r\r\f这样的字符串。如何将行尾或行首与这种文本匹配?
【问题讨论】:
-
你向所有人展示这些细节不是侵犯了 Karim 的隐私吗?这是可公开访问的信息还是测试/伪造信息?
-
offtopic:我猜 Osama Karim 会很高兴看到这里发布的这些信息 ;-)
-
我猜他会很高兴 ;) 但这并不能解释和证明这一点,除非这是公开信息或他已明确允许这样做:)
标签: c# regex escaping character