在多个文档中替换字符

时间:2015-04-06 18:37:02

标签: regex

我有多个包含值的文档,例如:

  

资产_ID =" PTLV0000000123456791" Asset_Class =" TITLE"

或者

  

资产_ID =" PTLV0000000123456801" Asset_Class =" TITLE"

我需要用PTLV0替换字符串的第一部分(PTLV1)。 我有搜索 - Asset_ID =" PTLV0。*?" Asset_Class =" TITLE" 但不确定如何替换以保留线程的剩余部分?

1 个答案:

答案 0 :(得分:0)

我的默认本能是查找PTLV0并替换为PTLV1,因为它似乎比打扰正则表达式容易得多。

BUT。如果您需要匹配带有asset_class的字符串以及不与ID本身匹配的内容,您可以使用lookbehinds和lookaheads来匹配预期匹配之前和之后的文本,而不将其包含在匹配本身中。

例如:

  • (?< = foo)bar匹配“foobar”中的“bar”,但不匹配“ackbar”或“bar”
  • foo(?= bar)匹配“foobar”中的“foo”,但不匹配“foodstuff”或“foo”

因此,您可以使用(?<=Asset_ID="PTLV)0(?=\d+" Asset_Class="TITLE")之类的正则表达式来匹配零,并替换为1