【发布时间】:2010-09-24 14:02:25
【问题描述】:
我不是正则表达式的初学者,但是它们在 perl 中的使用似乎与在 Java 中有点不同。
无论如何,我基本上都有一本速记词及其定义的字典。我想遍历字典中的单词并用它们的含义替换它们。在 JAVA 中执行此操作的最佳方法是什么?
我见过 String.replaceAll()、String.replace() 以及 Pattern/Matcher 类。我希望按照以下方式进行不区分大小写的替换:
word =~ s/\s?\Q$short_word\E\s?/ \Q$short_def\E /sig
当我这样做时,您认为最好从字符串中提取所有单词然后应用我的字典还是只将字典应用到字符串?我知道我需要小心,因为速记词可能会匹配其他速记含义的一部分。
希望这一切都有意义。
谢谢。
澄清:
字典类似于: lol:大声笑出来,rofl:在地板上大笑,ll:像柠檬一样
字符串是: 大声笑,我是rofl
替换文本: 大声笑出来,我笑得在地上打滚
注意 ll 是如何没有添加到任何地方的
【问题讨论】:
-
澄清一下:您的意思是要遍历字符串中的单词并用其定义替换短词吗?例如,用“exampli gratis, replace”替换“e.g., replace”,在很长的正文中?如果否,请提供前后示例。
-
我更新了我的问题。示例在底部
标签: java