找到2点之间的字符串&在另外2点之间移动

时间:2012-11-07 03:14:57

标签: java php html mysql centos

我有很多令人遗憾的静态网址,要更改它们我需要使用某种类型的应用程序或脚本..我有大约400个文件,每个网址的网址范围为15-150。

以下是我正在尝试做的一个例子:

Change:
<td class="SELECTX"><strong>Text example 1 <a href=""></a>Text Example 2 </strong></td>

To:
<td class="SELECTX"><strong> <a href=""></a>Text example 1 Text Example 2 </strong></td>

我希望能够同时在所有文件上更改此功能,但如果我不能,那么至少可以在1个文件中更改所有网址,而无需手动剪切和粘贴。

我搜索并搜索了超过3个小时,一无所获......我希望有人可以提供帮助。

编辑: 基本上我正在尝试在<strong<a href=之间找到"Text example 1"之间的文本/字符串,然后将其移到""></a>之后。现在将在"Text Example 2"

之前出现

3 个答案:

答案 0 :(得分:0)

要找到两个(或)标记之间的字符串,我可能只是使用正则表达式来查找字符串在文件中的位置,然后处理脚本中的每个字符串/行。

然后可能对于每一行,找到开始标记和结束标记,它将为我提供需要交换的字符串部分的索引,并在开始标记的索引处交换2个部分。

答案 1 :(得分:0)

请检查一下它是否完全符合您的需要

    String s = "<td class=\"SELECTX\"><strong>Text example 1 <a href=\"\"></a>Text Example 2 </strong></td>";
    s = s.replace("<a href=\"\"></a>", " ").replace("<strong>", "<strong><a href=\"\"></a>");

答案 2 :(得分:-1)

#!/bin/bash 
while read line
do
     x=`echo $line |grep -o "strong>.*<a" | sed 's/strong>//' |sed 's/<a//'`
     y=`echo $line |grep -o "a>.*</strong" | sed 's/a>//' |sed 's/<\/strong//'`
     z=`echo $line| sed 's/'"$x"'//' |sed 's/'"$y"'/'"$x $y"'/'`
    echo $z
done < a.txt

将此脚本的输出附加到另一个文件,这将是您的预期输出。您可以放置​​一个for循环来迭代该目录中的所有文件。

如果你想在java中复制这里是逻辑。

字符串X =“文字示例1”

字符串Y =“文字示例2”

字符串Z = X +(连接)+ Y

将“文字示例1”替换为“

用字符串Z替换“文本示例2”。