例如,这些是有效的数学表达式:
a * b + c
-a * (b / 1.50)
(apple + (-0.5)) * (boy - 1)
Run Code Online (Sandbox Code Playgroud)
这些是无效的数学表达式:
--a *+ b @ 1.5.0 // two consecutive signs, two consecutive operators, invalid operator, invalid number
-a * b + 1) // unmatched parentheses
a) * (b + c) / (d // unmatched parentheses
Run Code Online (Sandbox Code Playgroud)
我没有匹配浮点数的问题,但是括号匹配有困难.任何的想法?如果有比正则表达更好的解决方案,我也会接受.但正则表达式是首选.
========
编辑:
我想对我对"已接受的答案"的选择做一些评论,希望那些有相同问题并找到这个帖子的人不会被误导.
我认为有几个答案"被接受",但我不知道哪一个是最好的.所以我随机选择了接受的答案(差不多).除了接受的答案,我建议阅读Guillaume Malartre的答案.他们都为我的问题提供了实用的解决方案.有关严谨/理论上的答案,请在接受的答案下阅读David Thornley的评论.正如他所提到的,Perl对正则表达式的扩展(源于常规语言)使其"不规则".(我在我的问题中没有提到任何语言,所以大多数答复者都假设正则表达式的Perl实现 - 可能是最流行的实现.当我发布我的问题时,我也是如此.)
如果我上面说错了,请纠正我.
这不是一个真正的问题,因为我刚刚解决了这个问题,但我认为问题的本质对于许多iPhone开发者来说很常见,而且解决方案并不是很明显,所以我想分享一下我的经验.为了与StackOverflow"问题/答案"格式保持一致,我将把详细信息放入问题和我的解决方案中.
细节:
我有一个带有两个标签的单元格的桌面视图和一个从头开始放在一起的自定义切换开关控件.如果我隐藏了切换控件,则tableview会像冠军一样滚动.然而,在显示切换控制的情况下,iPhone 3G上的滚动非常不稳定/缓慢.我的tableview单元格没有透明组件(除了图层的掩码),我正在重复使用单元格.
自定义切换控件扩展了UIButton,它的图层有两个组件 - 一个UIImageView,它包含切换的滑动"开关"部分和一个用作蒙版的细长椭圆,背面绘制在图层后面-drawRect:.
我是如何解决的?答案即将到来......
我正在向我的数据库添加数据,但是想要检索自动生成的UnitID.
using (SqlConnection connect = new SqlConnection(connections))
{
SqlCommand command = new SqlCommand("ContactInfo_Add", connect);
command.Parameters.Add(new SqlParameter("name", name));
command.Parameters.Add(new SqlParameter("address", address));
command.Parameters.Add(new SqlParameter("Product", name));
command.Parameters.Add(new SqlParameter("Quantity", address));
command.Parameters.Add(new SqlParameter("DueDate", city));
connect.Open();
command.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)
...
ALTER PROCEDURE [dbo].[Contact_Add]
@name varchar(40),
@address varchar(60),
@Product varchar(40),
@Quantity varchar(5),
@DueDate datetime
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO DBO.PERSON
(Name, Address) VALUES (@name, @address)
INSERT INTO DBO.PRODUCT_DATA
(PersonID, Product, Quantity, DueDate) VALUES (@Product, @Quantity, @DueDate)
END
Run Code Online (Sandbox Code Playgroud) 我正在尝试为复选框设置自定义验证.我有7个复选框,每个复选框都有相同的名称,我想确定是否检查了最后一个.这是我的代码,我知道它的错误,任何人都可以了解如何正确地堆叠:last和:checked selectors在一起?
$.validator.addMethod('ObserverOtherBox',function(v, e) {
return ($('[[name="4_observers"]:last]:checked').length == 1) && ($('[name="4_observerstxt"]').length == 0) ;
}, 'Please enter the other observers');
Run Code Online (Sandbox Code Playgroud) 当我尝试从Eclipse中启动Web项目时,我得到:
SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3877)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Run Code Online (Sandbox Code Playgroud)
当我切换到Fedora 12 x64时,项目开始失败.该项目使用相同的配置在WinXP上工作.
谷歌搜索我发现帖子声称去项目属性 - > Java EE模块依赖项和检查Maven依赖项框修复了这个问题.可悲的是,它对我没用.
我正在使用Spring 2.5.6,Maven2,Eclipse 3.5(带有m2e 0.10.0插件),Tomcat 6和Java 6在Fedora 12 x64上运行.
有没有人见过这个问题?
如果它有帮助,这是我的.classpath文件
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry kind="src" output="target/classes" path="target/generated-sources/gpb"/> …Run Code Online (Sandbox Code Playgroud) 我有一个网页,有几个文件可供下载.这些文件的大小从1MB到40MB不等.为了帮助用户在文件下载过程中看到实际发生的事情,我想包含一个进度条,可以直观地显示下载进度.
jQuery UI Progress Bar可以用于这种任务吗?如果是这样,是否有一些我可以遵循的编码示例?(是的,我已经回顾了jQuery UI网站).
谢谢.
我找不到一个表达式来评估字符串的一部分.
我希望得到类似的东西:
if (string[4:8]=='abc') {...}
Run Code Online (Sandbox Code Playgroud)
我开始写这样的:
if (string[4]=='a' && string[5]=='b' && string[6]=='c') {...}
Run Code Online (Sandbox Code Playgroud)
但如果我需要评估字符串的大部分
if (string[10:40] == another_string) {...}
Run Code Online (Sandbox Code Playgroud)
然后它会写出太多的表达式.有没有现成的解决方案?
Visual Studio允许您创建"内联"类(如果我没有错误的名称).所以类头和实现都在一个文件中.
H.文件包含类和函数的定义和声明,根本没有.cpp文件.
所以我想知道这样做是否有任何惩罚?有什么缺点?
非常感谢
我正在编写一个PropertiesMustMatch可以将字符串属性名称作为参数的验证属性。我希望它通过名称在该对象上找到相应的属性并进行基本的相等比较。 通过反射访问它的最佳方法是什么?
此外,我检查了企业库中的 Validation 应用程序块,并认为它的 PropertyComparisonValidator 对我们所需要的来说太强了。
更新:为了进一步澄清(提供一些上下文),目标只是强制执行字段匹配的验证(例如,密码验证)。ValidationAttribute如果可能,我们希望它与从类继承的属性级属性数据注释一起使用。
更新:如果有人好奇,我最终通过调整提供的代码来解决实际的业务问题作为这个问题的答案
令人费解的是,当我使用rake运行以下迁移代码时,列数而不是值显示在MySQL数据库表中:
class AddTypeToItems < ActiveRecord::Migration
def self.up
add_column :items, 'type', :string, :limit => 100, :null => false
Item.find_by_name('YUMMY_JUICE').update_attribute(:type, 'Juice')
Item.find_by_name('TASTY_JUICE').update_attribute(:type, 'Juice')
Item.find_by_name('NASTY_JUICE').update_attribute(:type, 'Juice')
end
def self.down
remove_column :items, 'type'
end
end
Run Code Online (Sandbox Code Playgroud)
我实际上必须回滚迁移,然后再次运行它(总共两次)以显示值.到底是怎么回事?
validation ×2
attributes ×1
c ×1
c# ×1
c++ ×1
checkbox ×1
checked ×1
class ×1
eclipse ×1
iphone ×1
jquery ×1
jquery-ui ×1
m2eclipse ×1
maven-2 ×1
migration ×1
mysql ×1
parsing ×1
performance ×1
progress-bar ×1
reflection ×1
regex ×1
scroll ×1
spring ×1
sql ×1
sql-server ×1
string ×1
substring ×1
tomcat ×1
uitableview ×1