我又一次撞到了墙上。

如何使用正则表达式替换转义字符? 如果制表符(\ 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 \ 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 Warehouse
  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 \ aAven Dennison数据
  仓储\ r \ A \ r \ aClient \ r \ aAvery结果   丹尼森,他在项目中挑战
  是从现有的EDW喂EDW   在

中有数据的仓库   汇总结果   等级。\ r \ a \ r \ a \ r \ n \ r \ n \ r \ n \ r \ n \ r \ a \ a \ nA BI 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这样的字符串。如何将行尾或行首与这种文本匹配?

有帮助吗?

解决方案

您正在尝试匹配字符串" \ r" ,对吧?你必须逃脱转义角色才能做到这一点:

"(\\r)*"

此表达式将匹配" \ r" 任意次。它的工作原理是因为" \\" 转义为文字" \ _" 。您也可以应用相同的想法来匹配" \ t"

其他提示

/\t{2,}/\t/

用一个字符替换两个或多个标签。

对于tab char,请使用以下内容:

/(\t)*/\1/g
  1. 使用一个字符(标签字符串)创建一个组,并尽可能地匹配它。
  2. 将完整匹配替换为单个字符
  3. (全局)使用该模式作为全文。
  4. 然后,您可以对要替换的其他转义字符使用相同的表达式。

您可以将 \\ t \\ t \\ t 替换为 \\ t {3}

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top