我开始觉得使用正则表达式会降低代码的可维护性.正则表达式的简洁性和强大功能有些恶意.Perl将其与副作用(如默认运算符)相结合.
我有习惯记录正则表达式,至少有一个句子给出基本意图,至少有一个匹配的例子.
因为构建了正则表达式,所以我觉得对表达式中每个元素的最大组件进行注释是绝对必要的.尽管如此,即便是我自己的正则表达式让我摸不着头脑,好像我在读克林贡一样.
你故意愚弄你的正则表达式吗?你是否将可能更短,更强大的那些分解成更简单的步骤?我放弃了嵌套正则表达式.是否存在由于可维护性问题而避免的正则表达式构造?
不要让这个例子覆盖这个问题.
如果迈克尔·艾什的下面有一些错误,你会有什么可以做任何事情,但完全扔掉它?
^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[13-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
Run Code Online (Sandbox Code Playgroud)
根据请求,可以使用上面的Ash先生的链接找到确切的目的.
比赛 01.1.02 | 11-30-2001 | 2000年2月29日
非比赛 02/29/01 | 13/01/2002 | 11/00/02
我正在寻求Mac/iPhone开发人员关于新项目的意见.我们的想法是使用swig(www.swig.org)启动一个开源计划,用于自动生成从目标c到c ++的桥接,以便可以从cocoa/cocoa touch访问c ++应用程序.
Apple通过目标c ++为目标c和c ++的混合提供了非常好的支持,但是手工编写这些桥可能会很乏味且容易出错.这个项目打算做的是提供一种在c ++上自动生成目标c接口和包装器的方法,这样任何cocoa或cocoa touch应用程序都会在下面看到面向对象的c ++接口.
我非常感谢对这个想法的任何意见或建议.
我如何计算数据表中两行类型的总和?
在我的情况下,我不能改变列类型.
我试过这些:
1)对象objSum;
objSum = dt.Compute("Sum(WeightRate)","");
2)十进制总数=(十进制)dt.Compute("SUM([WeightRate])","");
但没有运气......
我的表:
Weightrate No.Ofvehicles
350.50 50
205.00 40
我需要结果
重量No.Ofvehicle
555.50 90
import java.awt.*;
import javax.swing.*;
public class
import javax.swing.*;
import java.awt.*;
import javax.swing.tree.*;
import javax.swing.event.*;
/*<applet code="JT.class" width=200 height=300>
</applet>*/
Run Code Online (Sandbox Code Playgroud)
public class JT extends JApplet {
JTree tree;
JTextField box;
Object nodeInfo;
String node1;
public void init() {
Container c=getContentPane();
c.setLayout(new BorderLayout());
DefaultMutableTreeNode topNode=new DefaultMutableTreeNode("qiscet");
DefaultMutableTreeNode cou=new DefaultMutableTreeNode("Courses");
DefaultMutableTreeNode mca=new DefaultMutableTreeNode("MCA");
DefaultMutableTreeNode mba=new DefaultMutableTreeNode("MBA");
DefaultMutableTreeNode tech=new DefaultMutableTreeNode("B.tech");
topNode.add(cou);
cou.add(mca);
cou.add(mba);
cou.add(tech);
DefaultMutableTreeNode manage=new DefaultMutableTreeNode("Management");
DefaultMutableTreeNode ac=new DefaultMutableTreeNode("Accounts");
DefaultMutableTreeNode sp=new DefaultMutableTreeNode("Sports");
DefaultMutableTreeNode lib=new DefaultMutableTreeNode("Library");
topNode.add(manage);
manage.add(ac);
manage.add(sp);
manage.add(lib);
tree=new JTree(topNode);
c.add(tree,BorderLayout.NORTH); …Run Code Online (Sandbox Code Playgroud) 在.NET 2.0和VS.NET 2005中调试ASP.NET应用程序时,我习惯于附加一个进程.我不知道VS.NET 2008中这个功能发生了什么.
我也不想通过从起始页面开始进行调试,因为当应用程序足够大时你不希望它被编译,你有时无法从一开始就抓住一个案例而你想在那段时间内抓住那个案例.
我无法想象这一个.
我正在使用VS.NET 2008 Team Suite运行Vista Ultimate x64.
此外,在WebSite Propery页面的启动选项中,服务器被选为"使用默认Web服务器",自定义服务器显示为灰色,我无法检查.(我不知道我是否需要一些改变,但我甚至不能尝试)
最重要的是,我尝试从默认页面进行调试,但在这种情况下,我得到的是"无法在Web服务器上开始调试.在Windows 64位平台上不支持混合模式调试".什么?无论如何,我进入解决方案的配置管理器并将混合模式更改为任何CPU,但没有运气.
在没有调试帮助的情况下,将ASP.NET降低到PHP或其他类型的水平.
补充说明:
我一直在使用JDOM库通过Java Servlets读写XML文件.
问题是,当我使用AJAX向我的servlet发送许多请求时,这些请求在XML文件中读写数据,很多时候它无法显示错误:文件过早结束.如何将所有这些读/写同步到文件中,还是有其他方法可以防止出现这些问题?如果需要更多详细信息,请与我们联系.
在这种情况下,使用线程会有什么好处吗?
非常感谢!
我正在寻找一些关于在文本框中启用语法突出显示的最佳实践和常用模式的概述.这似乎是一种非常常见的练习,几乎所有语言都具有UI控件,可以使用不同语言进行语法突出显示.我只是想知道是否有一个共同的实现模式.
每个人都使用正则表达式?是否存在常用于语法突出显示方案的正则表达式的存储库?
是否有替代/更好的语法突出显示方法?
更新
关于以给定语言执行语法突出显示的相关资源的链接或与语法突出显示相关的概念将是很好的.Lexing(词汇分析)提出了一个答案,但没有链接可以了解更多信息.任何有助于更好地理解这个通常解决的问题的东西都会很棒.
这是我在一些我正在维护的代码中看到的代码片段.
Object lock = new Object();
synchronized( lock )
{
try
{
lock.wait( 50000 );
Thread.sleep( 3000 );
}
catch(Exception ex)
{
}
}
Run Code Online (Sandbox Code Playgroud)
开发人员希望暂停当前线程一段时间,并使用Object#wait作为机制.显然,由于这个原因,使用wait/notify协议是不好的形式; 但是,调用wait(millisec)和Thread.sleep之间有什么重大区别吗?
我正在尝试编写工厂模式以在我的程序中创建MainMode或TestMode.我以前用来创建这些对象的代码是:
play = (isMode) ? new MainMode(numberRanges, numberOfGuesses) :
new TestMode(numberRanges, numberOfGuesses, randNo());
Run Code Online (Sandbox Code Playgroud)
我的游戏(游戏)将根据布尔值(isMode)创建MainMode对象或TestMode对象.正如您所看到的,我在TestMode对象中添加了一个额外的值(randNo()).此值在TestMode中用于允许用户输入自己的"随机数",而在MainMode构造函数中,这是随机生成的.在这个程序中,MainMode和TestMode都是抽象类Game的子类.
现在我想用工厂模式替换这一行,虽然我不确定我的TestMode构造函数需要一个额外的对象,我不确定我需要传递这个值的位置.如果我要创建一个工厂,它需要在一个新的类中,可能名为GameFactory或ModeFactory或类似的东西.
我该怎么做?
编辑:这里的问题是上面的代码在我的GUI中,其中numberRanges,numberOfGuesses和randNo()方法的值是.我想创建一个Factory类,但我无法传递这些值,因为randNo()会激活它自己.这是我的randNo()方法.
private int randNo() {
boolean isValidNumber = true;
int testRandomNum = 0;
while(isValidNumber) {
try {
testRandomNum = Integer.parseInt(JOptionPane.showInputDialog("Enter Random Number"));
isValidNumber = false;
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Sorry, but the number you entered was invalid");
}
}
return testRandomNum;
}
Run Code Online (Sandbox Code Playgroud)
问题是每当我传递randNo()时它都会显示JOptionPane.正如我已经说过的,GUI和Logic是分开的.GUI位于GUI包中,而其余代码位于逻辑包中.
java ×4
actionscript ×1
apache-flex ×1
asp.net ×1
c#-2.0 ×1
c++ ×1
concurrency ×1
debugging ×1
iis ×1
maintenance ×1
objective-c ×1
readability ×1
regex ×1
servlets ×1
swing ×1
xml ×1