我找不到正确的正则表达式来解决这种自适应。来自
<td> foo </td>
<td> bar </td>
|
<td> two foo </td>
<td> two bar </td>
|
我想去
<tr>
<td> foo </td>
<td> bar </td>
</tr></tr>
<td> two foo </td>
<td> two bar </td>
</tr>
通过识别正则表达式CCD_ 1的N个重复。
我能得到一些帮助吗?
谢谢!
#编辑:我自己用不同的格式生成html代码(最初的输入是
| foo | bar | | twofoo | twobar |
我就是从中产生的(。
我正在JS上进行转换,但为了尝试它,我使用https://regex101.com/,如果知道有用的话。
如果我是你,从你的原始输入开始,我会分别处理每个部分(表的开头/td
s之间/tr
s之间/表的结尾(。这更容易,每个部分都处理一次。
你可以在正则表达式中添加一个空格或s
,这取决于你是否想在单词周围保留空格,因为我不符合你的预期输出。
按此顺序:
开始:^|
->替换为<tr>n <td>
结束:|$
->替换为</td>n</tr>
在tr
s:<td>(.*)</td>
0->更换为</td>n</tr>n<tr>n <td>
最后在td
s:|
->更换为</td>n <td>
js示例:
var input = '| foo | bar | | twofoo | twobar |';
input = input.replace(/^|/, '<tr>n <td>');
input = input.replace(/|$/, '</td>n</tr>');
input = input.replace(/| |/g, '</td>n</tr>n<tr>n <td>');
input = input.replace(/|/g, '</td>n <td>');
console.log(input);