我有一个字符串.如何删除某个字符后的所有文字?(在这种情况下...)之后
的文本会...改变,所以我这就是为什么我要删除某个字符后的所有字符.
我有一个列表,我想用None替换值,其中condition()返回True.
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)
例如,如果条件检查bool(项目%2)应该返回:
[None, 1, None, 3, None, 5, None, 7, None, 9, None]
Run Code Online (Sandbox Code Playgroud)
最有效的方法是什么?
使用replace(CharSequence target, CharSequence replacement)String中的方法,如何使目标不区分大小写?
例如,它现在的工作方式:
String target = "FooBar";
target.replace("Foo", "") // would return "Bar"
String target = "fooBar";
target.replace("Foo", "") // would return "fooBar"
Run Code Online (Sandbox Code Playgroud)
我怎样才能使它如此替换(或者如果有更合适的方法)是不区分大小写的,这样两个例子都返回"Bar"?
有办法find and replace text string automatically in all folder's files吗?
我正在寻找一个简洁的RegEx解决方案来取代
有一个空间
对于那些在家里玩的人(以下工作)
text.replace(/[^a-z0-9]/gmi, " ").replace(/\s+/g, " ");
Run Code Online (Sandbox Code Playgroud)
我的想法是RegEx可能足以在一个声明中实现这一点.我觉得id需要的组件是
[^a-z0-9] - 删除非Alpha数字字符 \s+ - 匹配任何空间集合\r?\n|\r - 匹配所有新行/gmi - 全局,多行,不区分大小写但是,我似乎无法以正确的方式设置正则表达式(以下不起作用)
text.replace(/[^a-z0-9]|\s+|\r?\n|\r/gmi, " ");
Run Code Online (Sandbox Code Playgroud)
输入
234&^%,Me,2 2013 1080p x264 5 1 BluRay
S01(*&asd 05
S1E5
1x05
1x5
Run Code Online (Sandbox Code Playgroud)
期望的输出
234 Me 2 2013 1080p x264 5 1 BluRay S01 asd 05 S1E5 1x05 1x5
Run Code Online (Sandbox Code Playgroud) 我正在使用Python 3.5.2
我有两个清单
所以,我必须循环750,000个句子并执行大约20,000次替换,但是只有我的话实际上是"单词"并且不是更大字符串的一部分.
我是通过预先编译我的文字来做到这一点的,这样它们就被\b元字符所包围
compiled_words = [re.compile(r'\b' + word + r'\b') for word in my20000words]
Run Code Online (Sandbox Code Playgroud)
然后我循环我的"句子"
import re
for sentence in sentences:
for word in compiled_words:
sentence = re.sub(word, "", sentence)
# put sentence into a growing list
Run Code Online (Sandbox Code Playgroud)
这个嵌套循环每秒处理大约50个句子,这很好,但是处理我的所有句子仍需要几个小时.
有没有办法使用该str.replace方法(我认为更快),但仍然要求替换只发生在字边界?
或者,有没有办法加快re.sub方法?re.sub如果我的单词的长度大于句子的长度,我已经通过跳过来略微提高了速度,但这并没有太大的改进.
谢谢你的任何建议.
在eclipse中,是否可以在执行正则表达式搜索和替换时使用匹配的搜索字符串作为替换字符串的一部分?
基本上,我想替换所有出现的
variableName.someMethod()
Run Code Online (Sandbox Code Playgroud)
有:
((TypeName)variableName.someMethod())
Run Code Online (Sandbox Code Playgroud)
其中variableName可以是任何变量名.
在sed我可以使用类似的东西:
s/[a-zA-Z]+\.someMethod\(\)/((TypeName)&)/g
Run Code Online (Sandbox Code Playgroud)
也就是说,&表示匹配的搜索字符串.Eclipse中有类似的东西吗?
谢谢!
我在Windows Server 2008上嵌套了几个配置文件,如下所示:
C:\Projects\Project_1\project1.config
C:\Projects\Project_2\project2.config
Run Code Online (Sandbox Code Playgroud)
在我的配置中,我需要像这样进行字符串替换:
<add key="Environment" value="Dev"/>
Run Code Online (Sandbox Code Playgroud)
会变成:
<add key="Environment" value="Demo"/>
Run Code Online (Sandbox Code Playgroud)
我考虑过使用批处理脚本,但没有好的方法可以做到这一点,我听说使用PowerShell脚本可以轻松执行此操作.我找到了find/replace的例子,但我希望有一种方法可以遍历我的C:\ Projects目录中的所有文件夹,并找到任何以'.config'扩展名结尾的文件.当它找到一个,我希望它替换我的字符串值.
有什么好的资源可以找到如何做到这一点或任何可以提供一些见解的PowerShell大师?
我无法将其转换为Ruby.
这是一段完全符合我要求的JavaScript:
function get_code(str){
return str.replace(/^(Z_.*): .*/,"$1")???????????????????????????;
}
Run Code Online (Sandbox Code Playgroud)
我尝试过gsub,sub和replace,但似乎没有人做我期待的事情.
以下是我尝试过的例子:
"Z_sdsd: sdsd".gsub(/^(Z_.*): .*/) { |capture| capture }
"Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "$1")
"Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "#{$1}")
"Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "\1")
"Z_sdsd: sdsd".gsub(/(.).*/) { |capture| capture }
Run Code Online (Sandbox Code Playgroud) 我正在寻找在Vim中对所有项目文件进行搜索和替换(确认)的最佳方法."项目文件"是指当前目录中的文件,其中一些不必打开.
一种方法是简单地打开当前目录中的所有文件:
:args ./**
Run Code Online (Sandbox Code Playgroud)
然后对所有打开的文件进行搜索和替换:
:argdo %s/Search/Replace/gce
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,Vim的内存使用量从几十MB增加到超过2 GB,这对我来说不起作用.
我也安装了EasyGrep插件,但它几乎不会工作 - 要么它找不到所有的事件,要么只是挂起直到我按下CtrlC.到目前为止,我完成此任务的首选方法是ack-grep搜索术语,使用它的quickfix窗口打开包含该术语的任何文件,之前未打开,最后打开:bufdo %s/Search/Replace/gce.
我正在寻找一个可以用于此的好的,有效的插件,或者一个命令/命令序列,它比我现在使用的那个更容易.
replace ×10
regex ×4
python ×3
find ×2
performance ×2
string ×2
alphanumeric ×1
eclipse ×1
global ×1
ide ×1
java ×1
javascript ×1
list ×1
powershell ×1
python-2.6 ×1
ruby ×1
scripting ×1
sublimetext2 ×1
substring ×1
vim ×1