【发布时间】:2014-02-08 11:30:32
【问题描述】:
是否有正则表达式可以根据条件查找和替换值,“如果搜索字符串的第一部分在目标字符串中,则替换与搜索字符串匹配的部分。”
这是一种特殊的搜索和替换,因为替换也用作搜索字符串。
例如,我有这个网址:
http://www.domain.com/path/something/more/something/
搜索以下任何部分并替换为整体:
/path/user/
由于“/path/”同时在替换字符串和目标字符串中,结果将是:
http://www.domain.com/path/user/something/more/something/
注意:搜索/替换值可以是任何值。
在我进行替换时,我不知道替换和搜索字符串是什么,所以我不能使用硬编码搜索字符串的东西。例如,这不起作用,因为术语是硬编码的:
s.replace(/(\/path\/)/, "$1value/");
另一个例子:
这是句子,“谢谢苏珊您的订单。”
这是搜索和替换,“Susan Summers”
这是所需的句子,“谢谢 Susan Summers 的订单。”
用例:
假设您有 100 万个文本文档,它们是给客户的信件,但是当他们创建文档时,他们仅在应该使用全名时才使用客户的名字。现在,您的工作是查找并用他们的全名替换每次出现的名字。你只有他们的全名才能使用,而不是名字。
刚刚意识到这可能无法用作 RegEx,并且可能需要代码。
【问题讨论】:
-
当您说“搜索以下任何 部分 并替换为整体”时 - 什么构成 部分?使用您的示例 URL 和
/path/user/,我们不能说/是在目标字符串中找到的搜索字符串的一部分,因此结果可能是:http:/path/user//path/user/www.domain.com/path/user/path/path/user/user...?那么,“part”是指与目标字符串匹配的搜索字符串的最大可能部分吗?或者你的意思是一个或多个用括号完全封装的字符串(如/path/或/path/user/)? -
第一次出现。我添加了更多示例和用例。
-
抱歉继续澄清问题。当您说“第一次出现”时,我会假设这意味着您的搜索字符串中与目标字符串匹配的最短字符串。在您的示例中,那将是
S而不是 `Susan`。因此,结果将是“谢谢 Susan Summersusan 的订单...... -
如果名字是
Susim,由于前3个字母匹配,是否仍应替换"Susan Summers"。 -
好问题。我认为它应该取决于第一个非字母字符。所以任何不是字母的字符。例子是“。”或“”或“,”等
标签: javascript regex actionscript-3