小编Qix*_*Qix的帖子

正则表达式查找 sql 注释

我正在尝试找到一个可用于匹配 SQL 样式注释的正则表达式。单行注释相当简单 --.* 但是我不知道如何匹配多行注释。我不需要实际的替换代码,只需要正则表达式来匹配注释。

例如:

select * from valid_sql1;

select * from valid_sql2; --comment here

--comment select * from this_is_still_a_comment;

 /*
 select * from this_is_not_valid;
 */

 /*comment*/ select * from valid_sql3; /*this is a comment*/
Run Code Online (Sandbox Code Playgroud)

应该变成:

 select * from valid_sql1;

 select * from valid_sql2;

 select * from valid_sql3;
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏。

regex

2
推荐指数
1
解决办法
2565
查看次数

本机方法中的致命错误:在非 Java 线程中使用 JNIEnv

我正在实现一些 JNI 回调(本机 -> java)功能以及另一个更大的本机框架,并且在该框架的一个回调上我在尝试回调到java时收到此错误。

FATAL Error in native method: Using JNIEnv in non-java thread
Run Code Online (Sandbox Code Playgroud)

这到底是什么意思?什么是 java 线程,如何在另一个本机线程中使用 JNI?

java java-native-interface

2
推荐指数
1
解决办法
1685
查看次数

在多线程环境中使用HashMap进行定期更新

我有一个Java应用程序,在其中我将其他服务器的IP集维护在内存中的哈希映射中.哈希映射包含服务器实例ID与服务器IP地址之间的映射.我还将这些服务器信息保存在数据库中以保持持久性.

我试图解决一个简单的问题,我只需要在内存中缓存服务器信息,以便更快地访问.所以我已经使用了hashmap.我需要确保内存中的服务器信息不是陈旧的,并且缓存中的所有服务器都是响应式的.

所以我创建了两个单独的后台守护程序线程

  • 一个线程从hashmap获取每个条目并ping所有条目.如果任何服务器没有响应,则它从散列映射中删除该条目.
  • 另一个线程基本上将数据库条目与此hashmap缓存同步.因此,它查询所有条目数据库,并删除散列映射中的条目,这些条目在DB中不存在,对于DB中的新条目,它会ping每个条目并添加到散列映射.

这里第一个线程经常运行15秒,第二个DB线程每5分钟运行一次.

由于两个线程都在这里更新缓存,我使用了ConcurrentHashMap,因为它将被同步.即便如此,当我阅读多篇文章,文档和一些stackoverflow帖子时,我看到多个线程更新hashmap会有风险,比如当一个线程迭代hashmap时,其他线程可能会被触发并开始更新hashmap.

那么我如何使用不同的方法来解决这个问题,这样我就不会在应用程序性能,时间和空间复杂性方面干扰JVM,并确保我的hashmap中始终只有响应式服务器条目.

java synchronization hashmap concurrenthashmap

2
推荐指数
1
解决办法
1222
查看次数

从请求中获取用户浏览器数据

在php中有一个全局$_SERVER['HTTP_USER_AGENT']来获取用户浏览器数据.目前SailsJS中是否有类似的功能?

middleware node.js sails.js

2
推荐指数
1
解决办法
2338
查看次数

构造一个嵌套正方形的圆

我想构建一个嵌套正方形的圆圈,如下所示:

circleOfSquares

目前,我正在使用JavaScript/HTML5画布进行编程.这是我的代码:

<html>
<head>
<title>Circle of squares</title>
<script type="text/javascript">
var r = 150, u = 20, nests = 200;       //radius in pixels, circumference in squares, nests in squares
var w = r;                              //any number != 0

function getNewW()
{
    if(u < 3)
        alert("Error: u < 3 (" + u + " < 3)!");

    var tangents = new Array(new Array(0, w/2), new Array(Math.sin((1/u*360)*(Math.PI/180))*(w/2), -Math.cos((1/u*360)*(Math.PI/180))*(w/2)));
    var sta = new Array(new Array(r, 0), new Array(Math.cos((1/u*360)*(Math.PI/180))*r, Math.sin((1/u*360)*(Math.PI/180))*r));
    var end = new Array(new Array(sta[0][0]+tangents[0][0], sta[0][1]+tangents[0][1]), …
Run Code Online (Sandbox Code Playgroud)

javascript math html5 canvas

2
推荐指数
1
解决办法
488
查看次数

如何使用包含空值的char*初始化std :: string

我有一个具有以下签名的函数

void serialize(const string& data)

我有一个可能为空值的字符数组

const char* serializedString
Run Code Online (Sandbox Code Playgroud)

(所以有些人物有价值'\0')

我需要用给定的字符串调用给定的函数!

我要做的是如下:

string messageContents = string(serializedString);
serialize(messageContents.c_str());
Run Code Online (Sandbox Code Playgroud)

问题如下.字符串分配忽略第一个'\0'字符后出现的所有字符.

即使我调用size()数组,我也会在第一个之前获得元素数量'\0'.

PS我知道char数组的'真实'大小(arrray的整个大小包含包含字符的'\0'字符)

那么我该如何正确调用该方法呢?

c++ arrays string

2
推荐指数
1
解决办法
1270
查看次数

C++:指针语法之间的差异

好吧,所以我最近深入研究了C++并且我已经把所有东西都搞砸了.指针最终开始有意义,直到我应该使用它们,如何正确实现它们等.

然而,有一个关于指针的基本用法的一个小问题,我仍然需要回答.我会直接跳到代码:

具有以下类别A和功能foo(A* bar)......

class A
{}

void foo(A* bar)
{}
Run Code Online (Sandbox Code Playgroud)

......以下电话之间有什么区别foo

A* a;
A b;

foo(a);
foo(&b);
Run Code Online (Sandbox Code Playgroud)

他们都编译得很好,据我所知,我没有遇到任何问题.

我认为那A b;是在那里实例化的,而A* a;需要创建new(因为它实际上没有创建对象,它只是对潜在A对象进行了4字节的长引用).

我可以,如果我正确地考虑这个,做a = b;(编辑制作a = &b),然后成功传递afoo.但是,如果我不这样做a = &bfoo尝试读取指向的(不存在的)对象a,则会导致运行时错误.

此外,如果以上是正确的,那么我认为我可以成功通话foo(&b);.

我对么?

谢谢!

c++ pointers instantiation call

1
推荐指数
1
解决办法
234
查看次数

内联函数调用推理

所以我正在对编译器做一些尝试(我在C++'职业'中就是这一点)并且我注意到调用_rotl直接编译/汇编; 通过这种方式,我的意思是代替执行a的程序集call,(虽然只有2个)操作码似乎直接在调用的地方剪切/粘贴.

这背后的原因是什么?我相信这个术语是"内联函数",但我可能会弄错.

c++ assembly disassembly

1
推荐指数
1
解决办法
225
查看次数

createBlock应该需要什么

我想创建一个块并通过它将该块添加到我的模板中

$this->_addContent($this->getLayout()->createBlock("device/device"))
Run Code Online (Sandbox Code Playgroud)

现在,它没有显示任何东西.

有什么要点注意,以便我的块将被渲染(要知道的文件是什么?)

注意:

 COMPANY NAME: Abc
 MODULE NAME: Device
Run Code Online (Sandbox Code Playgroud)

此外,createBlock("device/device")返回"false"

magento

1
推荐指数
1
解决办法
1453
查看次数

在Java正则表达式中转义点序列会引发异常

我正在尝试做一个简单的正则表达式,在部分内搜索几个字符,包括查找.文字.但是,Pattern编译器说它无效.

以下是抛出格式异常的完整正则表达式的摘录.逃避看起来正确,它只是看到.不应该逃脱的东西.

([a-zA-Z0-9_-\.\s]{1,})
              ^
Run Code Online (Sandbox Code Playgroud)

我也尝试过"([a-zA-Z0-9_-\\\\.\\s]{1,})"(与上面相同但有两个\逃脱.)没有运气.

我在互联网上找到的用于逃避点角色的所有资源都表明这应该有效.

我错过了什么?

java regex escaping

1
推荐指数
1
解决办法
311
查看次数