java解析表达式
① java,关系表达式,求运算过程解释。谢谢。
因为&&是短路运算符“与”
((y=1)==0))&&((x=6)==6)), 当前面的表达式:((y=1)==0)) 为false的派行时候 ,后面的尘橡哗表达式((x=6)==6)), 不会再执行了(因为“与”运算只要一个为false,就整个都false)
而:((y=1)==1))&&((x=6)==6)), 前面的表达式是true,那么还要判断后面的表达式的boolean值才能得到整个表达式的值,所以会执行((x=6)==6)),
希望对你有帮助
如果如嫌不清楚短路运算符,那你就把&& 换成& 去执行看看;(&是非短路”与“)
② Java中用正则表达式对于输入数据的匹配和解析,求助!
我这样写都可以啊,用IE6,FIREFOX 3.0 都试过了前迅镇,没问题。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>慧粗 New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
Xhtml Linux
</BODY>
<script language="JavaScript">
document.body.innerHTML = document.body.innerHTML.replace(/(x)|(l)/gi,"<font color=red>$1$2</font>");
</script>
</HTML>
以下是通过FIREFOX 3.0 得到的BODY的innerHTM
<font color="red">X</font>htm<font color="red">l</font> <font color="red">L</font>inu<font color="red">x<昌蠢/font>
<script><font color=red>l</font>anguage="JavaScript">
document.body.innerHTM<font color=red>L</font> = document.body.innerHTM<font color=red>L</font>.rep<font color=red>l</font>ace(/(<font color=red>x</font>)|(<font color=red>l</font>)/gi,"<font co<font color=red>l</font>or=red>$1$2</font>");
</script>
③ JAVA正则表达式解析HTML字符串
public class TestString4 {
public static void main(String[] args) {
String s = "<R_Data> 0005,实验室0,0,0|0101,实验室A-测试点1,200,200|0102,实验室C-测试点2,80,400|0109,实验室C-测试点1,80,300|1020,实验室C-测试点3,80,500|1141,实验室A-测试点2,400,400|1146,实验室A-测试点3,300,300|1239,实验桐裂室B-测试点1,50,150|1240,实验室B-测试点2,80,200|1264,实验室B-测试点3,220,110| </R_Data>";
s = s.replace("<R_Data>", "").replace("</局乎闭R_Data>", "").trim();
String ss[] = s.split("\\|");
String[][] sss = new String[ss.length][];
for(int i=0;i<ss.length;i++){
sss[i] = ss[i].split(",");
}
}
}<p>sss中存顷困放的就是你需要的数据
</p>
System.out.println( new ReadSingleLineNumber().test2());
}
MySqlLog test2(){
String log = "2018-03-21T13:46:01.185376Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).";
String[] head = log.substring(0, log.indexOf(']') + 1).split(" ");
return new MySqlLog(head[0].trim(), Integer.parseInt(head[1].trim()), head[2].trim().substring(head[2].trim().indexOf('[') + 1, head[2].trim().indexOf(']')), log.substring(log.indexOf(']') + 2).trim());
}
class MySqlLog{
String time;
int index;
String level;
String msg;
public MySqlLog(String time, int index, String level, String msg) {
this.time = time;
⑤ Java解析excel 用正则表达式判断日期格式去转换到指定格式
^(\d{4}).?(\d{2}).?(\d{2})$
$1-$2-$3
⑥ Java中如何用正则表达式解析页面,提取所有URL
先用正则表达式把所有的url找返态饥出来string reg = @"(?is)<a[^>]*href=(['""]?)(?<url>[^>'""闭猜\s]+)[^>]*>";然后再替换漏返掉你想要的
⑦ JAVA 文本表达式解析成数学公式,计算出结果
正则表达分解字符串
然后运算
给你个例子。以前写的,现在忙没空给你写你这个了,public class CalStr { private String src;
/**
* constructor
*
* @param srcthe string(expression) to calculate
*/
public CalStr(String src) {
this.src = src;
}
/**
* calculate to get the result
*
* @return(double)result
*/
public double getResult() {
String postfix = getPostfix();
Stack stk = new Stack();
// System.out.println(postfix);
String parts[] = postfix.split( " + ");
double result = 0;
for (int i = 0; i < parts.length; i++) {
char tmp = parts[i].charAt(0);
if (!isOperator(tmp)) {
stk.push(parts[i]);
} else {
double a = Double.parseDouble((String) stk.pop());
double b = Double.parseDouble((String) stk.pop());
// b is followed by a in the orignal expression
result = calculate(b, a, tmp);
stk.push(String.valueOf(result));
}
}
return result;
}
/**
* test if the character is an operator,such +,-,*,/
*
* @param opthe character to test
* @returntrue if op is an operator otherwise false
*/
private boolean isOperator(char op) {
return (op == '+ ' || op == '- ' || op == '* ' || op == '/ ');
}
/**
* calculate an expression such (a op b)
*
* @param anumber 1
* @param bnumber 2
* @param opthe operator
* @return(double)(a op b)
*/
public double calculate(double a, double b, char op) {
switch (op) {
case '+ ':
return a + b;
case '- ':
return a - b;
case '* ':
return a * b;
case '/ ':
return a / b;
}
return -1;
}
/**
* convert the suffix to postfix
*
* @returnthe postfix as a string
*/
private String getPostfix() {
Stack stk = new Stack();
String postfix = new String();
char op;
int i = 0;
while (i < src.length()) {
if (Character.isDigit(src.charAt(i)) || src.charAt(i) == '. ') {
postfix += " ";
do {
postfix += src.charAt(i++);
} while ((i < src.length())
&& (Character.isDigit(src.charAt(i))));
postfix += " ";
}
else {
switch (op = src.charAt(i++)) {
case '( ':
stk.push( "( ");
break;
case ') ':
while (stk.peek() != "( ") {
String tmp = (String) stk.pop();
postfix += tmp;
if (tmp.length() == 1 && isOperator(tmp.charAt(0)))
postfix += " ";
}
stk.pop();
postfix += " ";
break;
case '+ ':
case '- ':
while ((!stk.empty()) && (stk.peek() != "( ")) {
postfix += stk.pop() + " ";
}
stk.push(String.valueOf(new Character(op)));
break;
case '* ':
case '/ ':
while ((!stk.empty())
&& ((stk.peek() == "* ") || (stk.peek() == "/ "))) {
postfix += stk.pop() + " ";
}
stk.push(String.valueOf(new Character(op)));
break;
}
}
}
ListIterator it = stk.listIterator(stk.size());
while (it.hasPrevious())
postfix += it.previous() + " ";
return postfix.trim().replaceAll( " +\\. ", ". ");
}
/**
* main function
*
* @param args
*/
public static void main(String args[]) {
System.out.println(new CalStr( "((1.5+6.000)*9+9.36)*(8+9-8*8+8*7) ")
.getResult());
}
}
⑧ java 怎么用正则表达式解析sql中的表名,已有半成品,求改善
Stringstr="from\s+(.*)\s+where?";
Stringsql="select*fromtable,table2wherea=b";
Patternp=Pattern.compile(str);
Matchermatcher=p.matcher(sql);
while(matcher.find()){
Stringstring=matcher.group(1);
System.out.println(string);
}
⑨ java 正则表达式 解析sql文的表名,有半成品,求改进
试试这个
(?i)(?<=(?:from|into|update|join|)s*)w*[.]?w*(?=s*)