Regex 正则表达式是否用MS Word中的另一个字符串替换字符串?
有谁能帮我用正则表达式来翻:Regex 正则表达式是否用MS Word中的另一个字符串替换字符串?,regex,ms-word,Regex,Ms Word,有谁能帮我用正则表达式来翻: filename_author 到 我正在使用MS Word 2003,并试图通过Word的查找和替换来实现这一点。我尝试了使用通配符功能,但没有任何运气 我是否只能通过编程来完成这项工作?这是正则表达式: ([^[uu]*)u(.*) 下面是一个C#示例: 下面是一个Python示例: from re import sub test = "filename_author"; result = sub('([^_]*)_(.*)', r'\2_\1', test
filename_author
到
我正在使用MS Word 2003,并试图通过Word的查找和替换来实现这一点。我尝试了使用通配符
功能,但没有任何运气
我是否只能通过编程来完成这项工作?这是正则表达式:
([^[uu]*)u(.*)
下面是一个C#示例:
下面是一个Python示例:
from re import sub
test = "filename_author";
result = sub('([^_]*)_(.*)', r'\2_\1', test)
编辑:要在Microsoft Word中使用通配符执行此操作,请将其用作搜索字符串:
()()
并替换为:
\2\u1
另外,请参阅以了解我在上面使用的语法的解释:
- 星号(*)返回单词中的所有文本
- 小于和大于符号(<>)标记开始和结束 每一个单词,分别。他们 确保搜索返回一个 一个字
- 括号和括号之间的空格将单词分成两部分 不同的组:(第一个词)(第二个词) 单词)。括号也表示 您希望搜索的顺序 对每个表达式求值
s/^([a-zA-Z]+)_([a-zA-Z]+)$/\2_\1/
根据上下文的不同,这可能有点贪婪。在.NET中,对于这种非常特殊的情况,您可以使用
([^\u]+)\ u([^\ u]+)
作为正则表达式,然后使用$2\u$1
作为替换模式。如果您需要两个以上的零件,它会变得复杂得多。搜索模式:
([^_]+)_(.+)
替换模式:
$2_$1
在C#中,你也可以这样做
string[] parts = "filename_author".Split('_');
return parts[1] + "_" + parts[0];
当然,您询问了regex,但这可能是一个不错的选择。因为您使用的是MS Word,您可以尝试非编程方法。高亮显示所有文本,选择表格->转换->文本到表格。将列数设置为2。选择处的单独文本,选择另一个收音机,然后输入一个33;。那会给你一张桌子。切换两列。然后再次使用u将表格转换回文本
或者您可以将整个内容复制到Excel,构造一个公式来拆分和重新连接文本,然后将其复制并粘贴回Word。两者都可以。实际上,我需要在支持正则表达式的编辑器上使用它。我想C++/C#应该可以吧。-1:哪种语言?哪个编辑器?那么您要替换的文本在MS Word文档中?是的。它在整个文档中。@Joan,我希望我的编辑在澄清您的意图的同时仍能保持您问题的精神。正如其他人所指出的,(*)对于正则表达式的第二部分比([^]+)更好。我想我可能必须在代码中这样做。如果我必须用“myname\u filename”这样的固定文本替换第二部分,你知道我需要什么吗?
$2_$1
string[] parts = "filename_author".Split('_');
return parts[1] + "_" + parts[0];