请帮助,我在xml文件中有很多代码我要替换最后一个单词
<Meaning>sự hạ thủy (tàu, thuyền); sự phóng (tên lửa)</para>
到
<Meaning>sự hạ thủy (tàu, thuyền); sự phóng (tên lửa)</Meaning>
我使用了以下替换代码: 找到:
^<Meaning>(.*)\<+.*$
替换为:
/<Meaning>$1.</Meaning>
但是当结果返回“find:invalid regular expression”
时答案 0 :(得分:0)
首先,您需要一个仅与您要替换的部分匹配的正则表达式。如果我理解正确,您希望在</ para>
之前没有其他标记时替换<Meaning>
。
这对于positiv lookbehinds来说是一个完美的例子,但由于它们仅限于固定数量的字符,我们需要使用\K
。
因此,搜索<Meaning>
,搜索任何不是标记的内容,使用\K
将其全部删除并获取<\ para>
<强>正则表达式强>:
<Meaning>[^<]*[^>]*\K</ para>
也许你想确定,</ para>
是该行中的最后一段文字。您可以搜索换行符\n\r
(以及可选的空格\s
),但您不希望将其替换为(?= )
<Meaning>[^<]*[^>]*\K</ para>(?=\s*[\n\r])
如果您想确定,<Meaning>
是该行的第一部分,您必须检查文档的开头^
或行制动[\r\n]
(?:^|[\r\n])<Meaning>[^<]*[^>]*\K</ para>(?=\s*[\n\r])
也许我说错了,<Meaning>
和</ para>
之间可以有任何内容,除非它在同一行。在这种情况下,您可以使用:
(?:^|[\r\n])<Meaning>[^\n\r]*\K</ para>(?=\s*[\n\r])