我又一次撞到了墙上。
如何使用正则表达式替换转义字符? 如果制表符(\ t)出现两次以上,我想用单个\ t替换那两个或多个出现。 例如,如果\ t \ t \ t \ t来,那么我只想用\ t替换它。 怎么做?
我在阅读文本文件和应用正则表达式时遇到了另外一个问题。
我正在使用C#来读取文本文件和正则表达式。 当我打开文本文件(具有txt扩展名的文件)时,我得到了正常的文件视图。但是当我使用“textReader”读取相同的文件并将其存储到字符串中时,我得到的文字是这样的:
O K \ t \ t \ t \ t \ t \ t \ _电子邮件:
k.o@gmail.com \ r电话:+ 91
992 \ t \ r \ n经验摘要
\ rBusiness Intelligence和数据
超过6的仓库设计师 多年的OLAP工作经验 项目。\ r \ r \ r \ r \ r技术\ rBelow是一个 重要软件产品清单
和我工作过的工具 用。\ r \ rSoftware
产品\ r \ A \ r \ aOperating
系统:\ rWINDOWS NT,WINDOWS 2000,
UNIX \ rDatabase管理
系统:\ rOracle 8i,Oracle 9i,Oracle
10g,SQL-Server 7.0,DB2 \ rSoftware
套餐:\ rVSS,ER Win,M1 \ rFourth
生成语言:\ rPL / SQL,
SQL * PLUS \ rTools&
技术:\ rOracle仓库
Builder 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 \一符\ v \ r \ r \ fAssignments \ rThe
各种作业的细节
这里列出了我处理的内容,
按时间顺序 订单。\ r \ n \ r \ n \ r \ a \每一个Dennison数据
仓储\ r \ A \ r \ aClient \ r \ aAvery
丹尼森,他在项目中挑战 是从现有的饲料EDW 在中国有数据的仓库 聚集
等级。\ r \ a \ r \ a \ r \ n \ r \ n \ r \ n \ r \ n \ r \ a \ aAOL BI (Omniture)\ rite团队。设计,
编码和测试以及 与现场团队协调 \ r \ a \ r \ aTools&技术\ r \ aUnix
平台,Oracle 10g,Py。不仅是 提供正确的要求但是 表现也必须在 接受
范围。\ r \一个\ r \一个\ r \ r \ r \ r \ r \ r \ r \ r \ r \ r \ r \ RNAME \ r \ AAIW
事件(ABSA)\ r \ a \ r \ aClient \ r \ aABSA,
南非\ r \ a \ r \ aP
即,所有转义字符如\ s,\ r,\ f都是可见的。因此,当我将相同的文本读入字符串变量时,使用普通文本的正则表达式不起作用。
任何人都知道如何解决这个问题?
由于
我还有一个查询。我想匹配行尾的文字。我试图用$来做这件事。例如,为了匹配以“赋值”结尾的文本,我使用正则表达式赋值$。它使用普通文本。但是当我在streamreader给出的文本上运行这个regx时,这个正则表达式不起作用。流阅读器提供了像Assignments \ r \ n \ r \ f这样的字符串。如何将行尾或行首与这种文本相匹配?
答案 0 :(得分:2)
/\t{2,}/\t/
用一个字符替换两个或多个标签。
答案 1 :(得分:1)
您正在尝试匹配字符串"\r"
,对吧?你必须逃脱转义角色才能做到这一点:
"(\\r)*"
此表达式将匹配"\r"
任意次。它有效,因为"\\"
转义为文字"\"
。您也可以应用相同的想法来匹配"\t"
。
答案 2 :(得分:1)
您可以将\\t\\t\\t
替换为\\t{3}
答案 3 :(得分:1)
对于tab char,请使用以下内容:
/(\t)*/\1/g
然后,您可以对要替换的其他转义字符使用相同的表达式。