在Java中我需要匹配 <a>没有href属性的字符串标记.例如,在以下字符串中:
text <a class="aClass" href="#">link1</a> text <a class="aClass" target="_blank">link2</a> text
Run Code Online (Sandbox Code Playgroud)
它不应该匹配<a class="aClass" href="#">link1</a>(因为它包含href)但它应该匹配<a class="aClass" target="_blank">link2</a>(因为它不包含href).
我设法构建RegEx以匹配我的标签:
<a[^>]*>(.*?)</a>
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何用href消除标签
(我知道我可以使用HTML解析器等,但我需要使用RegEx执行此操作.
我正在使用Java.我有以下文字:
"hyst and hy"
Run Code Online (Sandbox Code Playgroud)
为什么(hy)(?![az])返回两个"hy".这个想法是匹配az之间没有任何字符的任何"hy".
如果我做HY(?![AZ])(HY没有括号),它的工作原理(只找到第二个"HY"),但我不明白为什么,如果我在正则表达式中使用括号(HY)它的第一个"HY匹配"在hyst
我有一个静态变量,我在类的开头加载.我想每小时更新一次变量.问题是这样做的正确方法是什么?
我试图这样做的方式如下,但它需要更新静态变量的方法在每个构造函数中:
import java.util.Date;
public class MyClass {
private static String globalString = "";
// initialize lastUpdate with two hours back to make sure first update happens
private static Date lastUpdate = new Date(System.currentTimeMillis() - (2 * (3600 * 1000)));
MyClass() {
updateGlobalString();
// DO MORE STUFF HERE...
}
MyClass(String string) {
updateGlobalString();
// DO MORE STUFF HERE...
}
private synchronized void updateGlobalString() {
// check if we need to update
if (lastUpdate.before(new Date(System.currentTimeMillis() - (3600 * 1000)))) {
// …Run Code Online (Sandbox Code Playgroud)