2013-02-23 80 views
0

我试图创建一个正则表达式将替换文本字符串与任何我需要像来代替它两个标签(>和<)之间的文本,什么是“我新文本“。恐怕我对正则表达式不太熟悉,任何帮助都不胜感激。Powershell的正则表达式替换之间>和<

+1

我不知道PowerShell的,但类似单曲/>.*?我的新文本<'是普通正则表达式 – 2013-02-23 06:31:42

+0

请注意,当嵌套标记时(例如' my old text'),这将不起作用。这种情况不能用正则表达式来涵盖。 – 2013-02-23 10:51:39

回答

1

像这样的东西可能会有所帮助:(编辑征求意见后修正)

>> "<a>my text</a>" -replace ">.*?(<)", '>your text$1' 
<a>your text</a> 
>> 
+0

@AnsgarWiechers不,我没有,我的错误。我会看到它纠正。 – ilomambo 2013-02-23 14:23:25

+0

这就是我正在寻找的表达,tyvm! – gjettison 2013-02-23 20:27:50

0

另一种方式来控制比赛的约束是一个否定类。如果是多行数据,我们(M?)选项:

$text = @' 
<i>Some old text 
that I want to replace 
with my 
new text </i> 
'@ 

$regex='(m?)>[^<]+<' 

$text -replace $regex,'>My new text<' 

<i>My new text</i> 

在“> [^,] + <”转化为“>后面跟着一个或多个的任何不是<,其次通过<“。