所以在命令行我可以方便地做这样的事情:
perl -pne 's/from/to/' in > out
Run Code Online (Sandbox Code Playgroud)
如果我需要重复这个和/或我还有其他几个perl -pne转换,我可以将它们.bat放在Windows中的文件中.当然,这是一种相当迂回的方式.我应该编写一个perl包含所有这些正则表达式转换的脚本.
那么你怎么写呢?如果我有一个包含这些行的shell脚本:
perl -pne 's/from1/to1/' in > temp
perl -pne 's/from2/to2/' -i temp
perl -pne 's/from3/to3/' -i temp
perl -pne 's/from4/to4/' -i temp
perl -pne 's/from5/to5/' temp > out
Run Code Online (Sandbox Code Playgroud)
我怎样才能将这些全部放入一个perl脚本中?
我正在用org.json中的lib解析这个JSON字符串,我无法理解为什么我将下面的输出放到日志中.
ArrayList<String> al = new ArrayList<String>();
JSONObject demo = new JSONObject("{\"00408C88A2E6\":{\"id\":\"00408C88A2E6\",\"name\":\"Lab\"},\"00408C91188B\":{\"id\":\"00408C91188B\",\"name\":\"Lab1\"},\"00408C944B99\":{\"id\":\"00408C944B99\",\"name\":\"Lato1\"},\"00408C944BA0\":{\"id\":\"00408C944BA0\",\"name\":\"Lato\"}}");
Iterator<String> iterator = demo.keys();
while (iterator.hasNext() ){
al.add((String)iterator.next());
Log.i(LOG_TAG, "size al into while " + al.size());
Log.i(LOG_TAG, "MAC " + iterator.next() + " for the user " + userId);
}
Run Code Online (Sandbox Code Playgroud)
记录输出
07-12 08:55:34.056: INFO/parse(285): size al into while 1
07-12 08:55:34.056: INFO/parse(285): MAC 00408C91188B for the user nweb
07-12 08:55:34.066: INFO/parse(285): size al into while 2
07-12 08:55:34.066: INFO/parse(285): MAC 00408C944B99 for the user nweb
07-12 08:55:34.066: INFO/parse(285): size …Run Code Online (Sandbox Code Playgroud) 我看到了这个说法
$name = ereg_replace("[^A-Za-z0-9.]", "", $name);
Run Code Online (Sandbox Code Playgroud)
[^A-Za-z0-9.]和之间有什么区别[A-Za-z0-9.]?
根据我对正则表达式的理解,[]用于包括函数中替换的所有有效字符ereg_replace.
然后包括^进入的目的是[]什么?
谢谢
当我通过Findbugs运行时,我收到一个警告:
static @NonNull Object foo(@CheckForNull Object arg) {
if (arg == null) { // warning on this line
throw new NullPointerException();
}
return "something";
}
Run Code Online (Sandbox Code Playgroud)
警告的详细信息如下:
错误:
arg必须是非空的,但标记为可为空的
模式ID :NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE,类型:NP,类别:STYLE此参数始终以要求它为非空的方式使用,但该参数显式注释为
Nullable.使用参数或注释是错误的.
有人能解释一下Findbugs在这里抱怨什么吗?
请注意,我使用的是edu.umd.cs.findbugs.annotations.*成员,而不是javax.annotations.*.(有区别吗?)
为Eclipse 3.6.1设置了FindBugs插件1.3.9.2009-.
Matthew Flaschen建议我使用@NonNull,但现在我遇到了这个问题:
static void blah(@NonNull Object arg) {
if (arg == null) {
throw new NullPointerException();
}
System.out.println(arg);
}
static @CheckForNull Object bleh() {
return null;
}
//...
blah(bleh()); // warning …Run Code Online (Sandbox Code Playgroud) 我想创建一个临时存储过程来创建几个视图; 所以这样的事情:
create proc #t1 as
begin
create view v1 as select 1 as x
go
create view v2 as select 2 as x
end
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我在Microsoft SQL Server 2005中执行此操作时,我在第一create view行遇到语法错误.
像这样的东西有效:
create proc #t1 as
begin
exec('create view v1 as select 1 as x')
exec('create view v2 as select 2 as x')
end
Run Code Online (Sandbox Code Playgroud)
然而,这似乎是一种做我想做的事情的可怕方式.
那么第一次尝试出了什么问题,在存储过程中创建多个视图的最佳方法是什么?
我有以下课程:
public class NewGameContract {
public boolean HomeNewGame = false;
public boolean AwayNewGame = false;
public boolean GameContract(){
if (HomeNewGame && AwayNewGame){
return true;
} else {
return false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用它时:
if (networkConnection){
connect4GameModel.newGameContract.HomeNewGame = true;
boolean status = connect4GameModel.newGameContract.GameContract();
switch (status){
case true:
break;
case false:
break;
}
return;
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
incompatible types found: boolean required: int on the following
`switch (status)` code.
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我试图捕获"Rio Grande Do Leste":
...
<h1>Rio Grande Do Leste<br />
...
Run Code Online (Sandbox Code Playgroud)
运用
var myregexp = /<h1>()<br/;
var nomeAldeiaDoAtaque = myregexp.exec(document);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
更新:
还有2个问题:
1)搜索(文档)没有产生任何结果,但将其更改为(document.body.innerHTML)工作.这是为什么?
2)我不得不将其更改为:myregexp.exec(document.body.innerHTML)[1] ; 得到我想要的东西,否则它会给我一些结果,包括<h1>.这是为什么?
3)(已回答)为什么我需要使用".*"?我认为它会在()之间收集任何东西?
我需要一个接受所有类型字符(字母,数字和所有特殊字符)的正则表达式,并且miniumum字符数应为15,并且对最大字符没有限制.